Merge pull request #476 from httpdispatch/master

Parent project update
This commit is contained in:
Patrick Santana 2014-03-26 08:39:37 -03:00
commit 5bb3383768
26 changed files with 157 additions and 340 deletions

View file

@ -2,8 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.trovebox.android.app"
android:installLocation="auto"
android:versionCode="16"
android:versionName="2.5" >
android:versionCode="17"
android:versionName="2.6" >
<uses-sdk
android:minSdkVersion="7"
@ -164,7 +164,8 @@
<provider
android:name="com.trovebox.android.common.provider.UploadsProvider"
android:authorities="com.trovebox.android.app" />
android:authorities="com.trovebox.android.app"
android:exported="false" />
<!-- Required for the hi-res image processing -->
<!-- authorities can have the value you prefer -->
<provider

View file

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/trovebox_site_padding"
android:fillViewport="true" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/login_logo" />
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical" >
<EditText
android:id="@+id/edit_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_username"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/edit_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_email"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/edit_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_password"
android:inputType="textPassword" />
<Button
android:id="@+id/button_create_account"
style="@style/Trovebox.YellowButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="createAccountButtonAction"
android:text="@string/account_create_button" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.trovebox.android.app"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:app="http://schemas.android.com/apk/res/com.trovebox.android.app"
xmlns:android="http://schemas.android.com/apk/res/android"
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/trovebox_site_padding" >

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.trovebox.android.app"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

View file

@ -7,15 +7,19 @@
<EditText
android:id="@+id/edit_search"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:hint="@string/enter_tags_manually" />
<ListView
android:id="@+id/list_tags"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />
<Button android:id="@+id/filterBtn" android:layout_width="match_parent"
android:layout_height="wrap_content" android:text="@string/tags_view_in_gallery" />
<Button
android:id="@+id/filterBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/tags_view_in_gallery" />
</LinearLayout>

View file

@ -1,99 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:gravity="center_vertical"
android:orientation="vertical"
android:paddingBottom="@dimen/trovebox_site_padding_half"
android:paddingTop="@dimen/trovebox_site_padding_half" >
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >
<com.trovebox.android.app.ui.widget.AspectRatioImageView
android:id="@+id/newest_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="0dp"
android:adjustViewBounds="true"
android:clickable="true"
android:padding="0dp"
android:scaleType="centerCrop"
android:src="@drawable/icon" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:padding="5dip" >
<ImageView
android:id="@+id/geo_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:clickable="true"
android:src="@drawable/button_nolocation_share" />
<ImageView
android:id="@+id/share_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/geo_button"
android:clickable="true"
android:src="@drawable/button_share" />
<ImageView
android:id="@+id/button_private"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/button_private" />
</RelativeLayout>
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:clickable="false"
android:longClickable="false"
android:orientation="vertical"
android:paddingTop="0dp" >
<TextView
android:id="@+id/newest_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:padding="2dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/newest_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:padding="2dp"
android:text="@string/newest_this_photo_was_taken"
android:textColor="#545557"
android:textSize="12dp" />
<HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/newest_tag_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false" />
</HorizontalScrollView>
</LinearLayout>
</LinearLayout>

View file

@ -104,6 +104,7 @@
<!-- Tags -->
<string name="tags_view_in_gallery">Посмотреть отмеченные тегами фотографии</string>
<string name="enter_tags_manually">Введите теги</string>
<!-- SelectTagsActivity -->
<string name="title_activity_select_tags">Выбор тегов</string>
@ -172,6 +173,8 @@
<!-- Preferences -->
<string name="upload_preference_category">Загрузка фотографий с камеры</string>
<string name="setting_upload_manager_title">Менеджер отправлений</string>
<string name="setting_upload_manager_summary">Нажмите, чтобы увидеть текущие оправления</string>
<string name="wifi_only_upload">Загружать только если используется WiFi сеть</string>
<string name="auto_upload_preference_category">Автоматически загружать фотографии</string>
<string name="auto_upload_preference">Автоматически загружать сделанные снимки</string>

View file

@ -21,6 +21,7 @@
<string name="setting_account_type">setting_account_type</string>
<string name="setting_account_access_type">setting_account_access_type</string>
<string name="setting_account_access_permissions">setting_account_access_permissions</string>
<string name="setting_upload_manager_key">setting_upload_manager</string>
<string name="setting_upload_limit_reset_date">setting_upload_limit_reset_date</string>
<string name="setting_system_version_info_updated">setting_system_version_info_updated_v2</string>
<string name="setting_system_version_hosted">setting_system_version_hosted</string>

View file

@ -104,6 +104,7 @@
<!-- Tags -->
<string name="tags_view_in_gallery">View tagged photos</string>
<string name="enter_tags_manually">Enter tags</string>
<!-- SelectTagsActivity -->
<string name="title_activity_select_tags">Select Tags</string>
@ -172,6 +173,8 @@
<!-- Preferences -->
<string name="upload_preference_category">Camera upload</string>
<string name="setting_upload_manager_title">Upload Manager</string>
<string name="setting_upload_manager_summary">Click to open \"Sending list\"</string>
<string name="wifi_only_upload">Upload only if WiFi network used</string>
<string name="auto_upload_preference_category">Automatically upload photos (Experimental)</string>
<string name="auto_upload_preference">Auto upload taken pictures</string>

View file

@ -22,6 +22,11 @@
holo:defaultValue="@bool/setting_wifi_only_upload_on_default"
holo:key="@string/setting_wifi_only_upload_on_key"
holo:title="@string/wifi_only_upload" />
<PreferenceScreen
holo:key="@string/setting_upload_manager_key"
holo:summary="@string/setting_upload_manager_summary"
holo:title="@string/setting_upload_manager_title" />
</PreferenceCategory>
<PreferenceCategory holo:title="@string/auto_upload_preference_category" >
<CheckBoxPreference

View file

@ -12,6 +12,7 @@ import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
import com.trovebox.android.common.fragment.common.CommonFragment;
import com.trovebox.android.common.util.CommonUtils;
public final class ImageFragment extends CommonFragment {
int imageResourceId;
@ -53,8 +54,13 @@ public final class ImageFragment extends CommonFragment {
LinearLayout layout = new LinearLayout(getActivity());
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
if (CommonUtils.isFroyoOrHigher()) {
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
} else {
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
}
layout.setGravity(Gravity.CENTER);
layout.addView(image);

View file

@ -24,7 +24,7 @@ import com.trovebox.android.common.net.TroveboxApi;
import com.trovebox.android.common.util.CommonUtils;
public class Preferences {
public final static int PREFERENCES_MODE = Context.MODE_MULTI_PROCESS;
public final static int PREFERENCES_MODE = Context.MODE_PRIVATE;
public final static String PREFERENCES_NAME = "default";
public final static String LIMITS_PREFERENCES_NAME = "limits";
public final static String SYSTEM_VERSION_PREFERENCES_NAME = "system_version";

View file

@ -22,11 +22,11 @@ import com.trovebox.android.app.twitter.TwitterUtils;
import com.trovebox.android.common.fragment.common.CommonFragmentUtils;
import com.trovebox.android.common.fragment.common.CommonRetainedFragmentWithTaskAndProgress;
import com.trovebox.android.common.provider.UploadsUtils;
import com.trovebox.android.common.util.CommonUtils;
import com.trovebox.android.common.util.GuiUtils;
import com.trovebox.android.common.util.TrackerUtils;
public class SettingsCommon implements
OnPreferenceClickListener {
public class SettingsCommon implements OnPreferenceClickListener {
static final String TAG = SettingsCommon.class.getSimpleName();
Activity activity;
Preference mLoginPreference;
@ -45,41 +45,27 @@ public class SettingsCommon implements
@Override
public boolean onPreferenceClick(Preference preference) {
if (activity.getString(R.string.setting_account_loggedin_key)
.equals(
preference.getKey()))
{
if (Preferences.isLoggedIn(activity))
{
if (activity.getString(R.string.setting_account_loggedin_key).equals(preference.getKey())) {
if (Preferences.isLoggedIn(activity)) {
// confirm if user wants to log out
new AlertDialog.Builder(activity, R.style.Theme_Trovebox_Dialog_Light)
.setTitle(R.string.logOut)
.setMessage(R.string.areYouSureQuestion)
.setTitle(R.string.logOut).setMessage(R.string.areYouSureQuestion)
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int whichButton) {
TrackerUtils.trackButtonClickEvent("setting_logout",
activity);
getLogoutFragment().doLogout();
}
})
.setNegativeButton(R.string.no, null)
.show();
@Override
public void onClick(DialogInterface dialog, int whichButton) {
TrackerUtils.trackButtonClickEvent("setting_logout", activity);
getLogoutFragment().doLogout();
}
}).setNegativeButton(R.string.no, null).show();
} else
{
} else {
getLogoutFragment().finishActivity();
}
} else if (activity.getString(
R.string.setting_account_facebook_loggedin_key)
.equals(preference.getKey()))
{
} else if (activity.getString(R.string.setting_account_facebook_loggedin_key).equals(
preference.getKey())) {
LogoutListener logoutListener = new LogoutListener() {
@Override
@ -89,22 +75,25 @@ public class SettingsCommon implements
@Override
public void onLogoutFinish() {
FacebookSessionEvents.removeLogoutListener(this);
loginCategory
.removePreference(mFacebookLoginPreference);
loginCategory.removePreference(mFacebookLoginPreference);
}
};
mFacebookLoginPreference.setEnabled(false);
FacebookSessionEvents.addLogoutListener(logoutListener);
FacebookUtils.logoutRequest(activity);
} else if (CommonUtils.getStringResource(R.string.setting_upload_manager_key).equals(
preference.getKey())) {
Intent intent = new Intent(activity, UploadManagerActivity.class);
activity.startActivity(intent);
}
return false;
}
public void refresh() {
mLoginPreference.setTitle(Preferences.isLoggedIn(activity) ?
R.string.setting_account_loggedin_logout
: R.string.setting_account_loggedin_login);
mLoginPreference
.setTitle(Preferences.isLoggedIn(activity) ? R.string.setting_account_loggedin_logout
: R.string.setting_account_loggedin_login);
}
public Preference getLoginPreference() {
@ -120,19 +109,20 @@ public class SettingsCommon implements
return mFacebookLoginPreference;
}
public void setFacebookLoginPreference(
Preference mFacebookLoginPreference) {
public void setFacebookLoginPreference(Preference mFacebookLoginPreference) {
this.mFacebookLoginPreference = mFacebookLoginPreference;
this.mFacebookLoginPreference.setOnPreferenceClickListener(this);
if (FacebookProvider.getFacebook() == null
|| !FacebookProvider.getFacebook().isSessionValid())
{
|| !FacebookProvider.getFacebook().isSessionValid()) {
loginCategory.removePreference(mFacebookLoginPreference);
}
}
public void setAutoUploadTagPreference(
Preference autoUploadTagPreference) {
public void setUploadManagerPreference(Preference uploadManagerPreference) {
uploadManagerPreference.setOnPreferenceClickListener(this);
}
public void setAutoUploadTagPreference(Preference autoUploadTagPreference) {
this.autoUploadTagPreference = autoUploadTagPreference;
this.autoUploadTagPreference
.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@ -148,33 +138,28 @@ public class SettingsCommon implements
autoUploadTagPreference.setSummary(Preferences.getAutoUploadTag(activity));
}
public void setWiFiOnlyUploadPreference(
Preference wiFiOnlyUploadPreference) {
wiFiOnlyUploadPreference
.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public void setWiFiOnlyUploadPreference(Preference wiFiOnlyUploadPreference) {
wiFiOnlyUploadPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
TrackerUtils.trackPreferenceChangeEvent("settings_wifi_only_upload_on",
newValue,
activity);
return true;
}
});
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
TrackerUtils.trackPreferenceChangeEvent("settings_wifi_only_upload_on", newValue,
activity);
return true;
}
});
}
public void setAutoUploadPreference(
Preference autoUploadPreference) {
autoUploadPreference
.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public void setAutoUploadPreference(Preference autoUploadPreference) {
autoUploadPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
TrackerUtils.trackPreferenceChangeEvent("settings_autoupload_on", newValue,
activity);
return true;
}
});
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
TrackerUtils.trackPreferenceChangeEvent("settings_autoupload_on", newValue,
activity);
return true;
}
});
if (Preferences.isLimitedAccountAccessType()) {
autoUploadPreference.setEnabled(false);
((CheckBoxPreference) autoUploadPreference).setChecked(false);
@ -196,85 +181,67 @@ public class SettingsCommon implements
public void setServerUrl(Preference mServerUrl) {
this.mServerUrl = mServerUrl;
mServerUrl.setSummary(Preferences.getServer(activity));
mServerUrl
.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference,
Object newValue) {
String oldValue = ((EditTextPreference)
preference).getText();
if (!oldValue.equals(newValue))
{
Preferences.logout(activity);
refresh();
}
return true;
}
});
mServerUrl.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String oldValue = ((EditTextPreference) preference).getText();
if (!oldValue.equals(newValue)) {
Preferences.logout(activity);
refresh();
}
return true;
}
});
}
public void setSyncClearPreference(Preference mSyncClearPreference) {
this.mSyncClearPreference = mSyncClearPreference;
mSyncClearPreference
.setOnPreferenceClickListener(new OnPreferenceClickListener() {
mSyncClearPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
// confirm if user wants to clear sync information
new AlertDialog.Builder(activity, R.style.Theme_Trovebox_Dialog_Light)
.setTitle(R.string.sync_clear)
.setMessage(R.string.areYouSureQuestion)
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
// confirm if user wants to clear sync information
new AlertDialog.Builder(activity, R.style.Theme_Trovebox_Dialog_Light)
.setTitle(R.string.sync_clear).setMessage(R.string.areYouSureQuestion)
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int whichButton) {
TrackerUtils.trackButtonClickEvent(
"setting_sync_clear", activity);
UploadsUtils.clearUploadsAsync();
}
})
.setNegativeButton(R.string.no, null)
.show();
@Override
public void onClick(DialogInterface dialog, int whichButton) {
TrackerUtils.trackButtonClickEvent("setting_sync_clear", activity);
UploadsUtils.clearUploadsAsync();
}
}).setNegativeButton(R.string.no, null).show();
return true;
}
});
return true;
}
});
}
public void setDiskCachClearPreference(Preference diskCacheClearPreference) {
this.diskCacheClearPreference = diskCacheClearPreference;
diskCacheClearPreference
.setOnPreferenceClickListener(new OnPreferenceClickListener() {
diskCacheClearPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
// confirm if user wants to clear sync information
new AlertDialog.Builder(activity, R.style.Theme_Trovebox_Dialog_Light)
.setTitle(R.string.disk_cache_clear)
.setMessage(R.string.areYouSureQuestion)
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
// confirm if user wants to clear sync information
new AlertDialog.Builder(activity, R.style.Theme_Trovebox_Dialog_Light)
.setTitle(R.string.disk_cache_clear)
.setMessage(R.string.areYouSureQuestion)
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int whichButton) {
TrackerUtils.trackButtonClickEvent(
"setting_disk_cache_clear", activity);
getClearDiskCachesFragment().clearDiskCaches();
}
})
.setNegativeButton(R.string.no, null)
.show();
@Override
public void onClick(DialogInterface dialog, int whichButton) {
TrackerUtils.trackButtonClickEvent("setting_disk_cache_clear",
activity);
getClearDiskCachesFragment().clearDiskCaches();
}
}).setNegativeButton(R.string.no, null).show();
return true;
}
});
return true;
}
});
}
/**
@ -306,12 +273,10 @@ public class SettingsCommon implements
public void finishActivity() {
Activity activity = getSupportActivity();
if (activity != null)
{
if (activity != null) {
activity.startActivity(new Intent(activity, AccountActivity.class));
activity.finish();
} else
{
} else {
TrackerUtils.trackErrorEvent("activity_null", TAG);
}
}
@ -319,15 +284,13 @@ public class SettingsCommon implements
class LogoutUserTask extends RetainedTask {
@Override
protected Boolean doInBackground(Void... params) {
try
{
try {
UploadsUtils.clearUploads();
FacebookUtils.logoutRequest(TroveboxApplication.getContext());
TwitterUtils.logout(TroveboxApplication.getContext());
ImageCacheUtils.clearDiskCaches();
return true;
} catch (Exception ex)
{
} catch (Exception ex) {
GuiUtils.noAlertError(TAG, ex);
}
return false;
@ -335,13 +298,10 @@ public class SettingsCommon implements
@Override
protected void onSuccessPostExecuteAdditional() {
try
{
Preferences
.logout(getSupportActivity());
try {
Preferences.logout(getSupportActivity());
finishActivity();
} catch (Exception e)
{
} catch (Exception e) {
GuiUtils.error(TAG, e);
}
}

View file

@ -37,6 +37,8 @@ public class SettingsFragment extends CommonPreferenceFragment
.setSyncClearPreference(findPreference(getString(R.string.setting_sync_clear_key)));
settingsCommon
.setDiskCachClearPreference(findPreference(getString(R.string.setting_disk_cache_clear_key)));
settingsCommon
.setUploadManagerPreference(findPreference(getString(R.string.setting_upload_manager_key)));
settingsCommon
.setAutoUploadTagPreference(findPreference(getString(R.string.setting_autoupload_tag_key)));
settingsCommon

View file

@ -22,7 +22,6 @@
android:orientation="horizontal" >
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent" >

View file

@ -22,7 +22,6 @@
android:orientation="horizontal" >
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent" >

View file

@ -36,7 +36,6 @@
android:paddingTop="@dimen/trovebox_site_padding_half" >
<LinearLayout
android:id="@+id/image_details"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"

View file

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:holo="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res/com.trovebox.android.app"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

View file

@ -36,9 +36,11 @@
<string name="sync_uploading_in_background">Ваши фотографии отправляются</string>
<plurals name="sync_upload_selected_confirmation">
<item quantity="zero">Вы хотите загрузить %1$d выбранных изображения?</item>
<item quantity="few">Вы хотите загрузить %1$d выбранных изображения?</item>
<item quantity="zero">Вы хотите загрузить %1$d выбранных изображений?</item>
<item quantity="other">Вы хотите загрузить %1$d выбранных изображений?</item>
<item quantity="many">Вы хотите загрузить %1$d выбранных изображений?</item>
<item quantity="one">Вы хотите загрузить выбранное изображение?</item>
<item quantity="other">Вы хотите загрузить %1$d выбранных изображения?</item>
</plurals>
<!-- Upload Manager screen -->
@ -59,7 +61,9 @@
-->
<plurals name="number_of_items_selected">
<item quantity="zero">%1$d выбрано</item>
<item quantity="one">%1$d выбрано</item>
<item quantity="one">%1$d выбран</item>
<item quantity="few">%1$d выбрано</item>
<item quantity="many">%1$d выбрано</item>
<item quantity="other">%1$d выбрано</item>
</plurals>

View file

@ -76,7 +76,7 @@
<string name="notification_upload_success_title">Upload finished</string>
<string name="notification_upload_skipped_title">Upload skipped. Found same photo on the server.</string>
<string name="notification_upload_success_text">%1$s</string>
<string name="notification_upload_multiple_title">Successfull upload</string>
<string name="notification_upload_multiple_title">Successful upload</string>
<string name="notification_upload_multiple_text">Uploaded: %1$d; skipped: %2$d</string>
<string name="notification_upload_multiple_details">Upload details</string>
<string name="notification_upload_multiple_detail_skipped"><![CDATA[<b>%1$s</b> skipped]]></string>

View file

@ -136,7 +136,7 @@
</style>
<style name="TextTitle">
<item name="android:textSize">18dp</item>
<item name="android:textSize">18sp</item>
<item name="android:textStyle">bold</item>
</style>
@ -159,7 +159,7 @@
<item name="android:layout_height">wrap_content</item>
<item name="android:gravity">center_vertical</item>
<item name="android:layout_margin">4dp</item>
<item name="android:textSize">10dp</item>
<item name="android:textSize">10sp</item>
</style>
<style name="Trovebox.YellowButton" parent="Holo.Button">

View file

@ -265,8 +265,9 @@ public class GuiUtils {
for (int i = 0; i < values.length; i++) {
String value = values[i];
if (TextUtils.isEmpty(value)) {
String pleaseSpecifyFirst = activity.getString(R.string.pleaseSpecifyFirst);
info(String.format(pleaseSpecifyFirst, titles[i]), activity);
String pleaseSpecifyFirst = activity.getString(R.string.pleaseSpecifyFirst,
titles[i]);
info(pleaseSpecifyFirst, activity);
return false;
}
}
@ -285,9 +286,9 @@ public class GuiUtils {
for (int i = 0; i < values.length; i++) {
String value = values[i];
if (TextUtils.isEmpty(value)) {
String pleaseSpecifyFirst = CommonUtils
.getStringResource(R.string.pleaseSpecifyFirst);
info(String.format(pleaseSpecifyFirst, CommonUtils.getStringResource(titles[i])));
String pleaseSpecifyFirst = CommonUtils.getStringResource(
R.string.pleaseSpecifyFirst, CommonUtils.getStringResource(titles[i]));
info(pleaseSpecifyFirst);
return false;
}
}

View file

@ -86,7 +86,7 @@ public class Patterns {
+ "|(?:mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])"
+ "|(?:name|net|n[acefgilopruz])"
+ "|(?:org|om)"
+ "|(?:pro|p[aefghklmnrstwy])"
+ "|(?:pro|photo(?:s|graphy)?|pics|p[aefghklmnrstwy])"
+ "|qa"
+ "|r[eosuw]"
+ "|s[abcdeghijklmnortuvyz]"

View file

@ -9,7 +9,7 @@
android.library=true
# Project target.
target=android-18
target=android-19
jar.libs.dir=libs
android.library.reference.1=..\\HoloEverywhere\\library
android.library.reference.2=../viewpagerindicator/library

View file

@ -11,5 +11,5 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-18
target=android-19
android.library=true