From 6b3f51d373f19711a7fac44f2f6df9dc89110eb1 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Thu, 16 Jul 2009 17:45:04 -0700 Subject: [PATCH] More new gestures UI. Adds a back button at the bottom of the settings activity. --- res/drawable/g_background.9.png | Bin 0 -> 392 bytes res/drawable/g_bar_background.xml | 19 ++++++++ res/drawable/gestures_frame.9.png | Bin 6582 -> 3882 bytes res/drawable/mirrored_shadow.9.png | Bin 0 -> 165 bytes res/layout/gestures_settings.xml | 44 ++++++++++++++---- .../android/launcher/GesturesActivity.java | 30 ++++-------- .../android/launcher/GesturesConstants.java | 2 + src/com/android/launcher/Launcher.java | 4 +- 8 files changed, 66 insertions(+), 33 deletions(-) create mode 100644 res/drawable/g_background.9.png create mode 100644 res/drawable/g_bar_background.xml create mode 100644 res/drawable/mirrored_shadow.9.png diff --git a/res/drawable/g_background.9.png b/res/drawable/g_background.9.png new file mode 100644 index 0000000000000000000000000000000000000000..a4bf817644d2fd12aad1025498fb25231e9451d7 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0y~yU~~eq?Ks$gWSo`IBp@YO;u=vBoS#-wo>-L1;Fyx1 zl&avFo0y&&l$w}QS$Hzl2B=HR)5S5Q;?|q%*<4Ky5^aI|GsJiP&)sL4pz=4sc=v?o z0*W5SmnZaxdG1=as_k$Hdx3#zn}PlALy5INKh(UxG2u3E`frA}Q{TUNzPZ}y-;zz= zf9#Y`Isbll*U~F-M`k4)343%eg5p+`LmWgw{3c6%ztwCm)i0y z|E72B2PV$_Bg@7o?-b3zq1Yh6G)Ra)-Nn_bwX7Lsf+p?aGGMSgpH!vlwMiKmv<#lE KelF{r5}E)A(|_Cm literal 0 HcmV?d00001 diff --git a/res/drawable/g_bar_background.xml b/res/drawable/g_bar_background.xml new file mode 100644 index 0000000000..b9f6694943 --- /dev/null +++ b/res/drawable/g_bar_background.xml @@ -0,0 +1,19 @@ + + + + diff --git a/res/drawable/gestures_frame.9.png b/res/drawable/gestures_frame.9.png index c5f5640632afa1f008a312095eef507b70aab69f..3119a815bc07d53293235c162b40075a0fd4dee1 100644 GIT binary patch literal 3882 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 p4#-vF6a?vVfh diff --git a/res/drawable/mirrored_shadow.9.png b/res/drawable/mirrored_shadow.9.png new file mode 100644 index 0000000000000000000000000000000000000000..84516dddb0d1c0cc7e6cf89c1835eaab24ba92a3 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^VnEEn!3HG%X7FDCQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JirhV2978H@CH?vT-=2A6!^DY#EB@Fk2WEL1&Ja1kRLaRd z_3YnsOsO1~jvRGRaMW&I`93MYhxz5xD<&dSiVmz~%CZRMW#celSQ{<&X{PiBU7(Q+ Mp00i_>zopr0NjT*-v9sr literal 0 HcmV?d00001 diff --git a/res/layout/gestures_settings.xml b/res/layout/gestures_settings.xml index d32b3ec840..712cb22d2d 100644 --- a/res/layout/gestures_settings.xml +++ b/res/layout/gestures_settings.xml @@ -14,22 +14,46 @@ limitations under the License. --> - + + android:layout_height="0dip" + android:layout_alignParentTop="true" + android:layout_above="@+id/bottom_bar" /> - - android:text="@string/gestures_loading" - android:textAppearance="?android:attr/textAppearanceMedium" /> + + android:layout_width="fill_parent" + android:layout_height="60dip" + android:layout_alignParentBottom="true" + + android:background="@drawable/g_bar_background"> + + + + + + diff --git a/src/com/android/launcher/GesturesActivity.java b/src/com/android/launcher/GesturesActivity.java index 24775ffe31..0b66ae1ea6 100644 --- a/src/com/android/launcher/GesturesActivity.java +++ b/src/com/android/launcher/GesturesActivity.java @@ -56,9 +56,6 @@ public class GesturesActivity extends ListActivity implements AdapterView.OnItem private static final int DIALOG_RENAME_GESTURE = 1; - static final String PREFERENCES_NAME = "gestures"; - static final String PREFERENCES_HOME_KEY = "gestures.home"; - // Type: long (id) private static final String GESTURES_INFO_ID = "gestures.info_id"; @@ -68,7 +65,6 @@ public class GesturesActivity extends ListActivity implements AdapterView.OnItem private GesturesAdapter mAdapter; private GestureLibrary mStore; private GesturesLoadTask mTask; - private TextView mEmpty; private Dialog mRenameDialog; private EditText mInput; @@ -86,12 +82,16 @@ public class GesturesActivity extends ListActivity implements AdapterView.OnItem getListView().setOnItemClickListener(this); mStore = Launcher.getGestureLibrary(); - mEmpty = (TextView) findViewById(android.R.id.empty); mTask = (GesturesLoadTask) new GesturesLoadTask().execute(); registerForContextMenu(getListView()); - mPreferences = getSharedPreferences(PREFERENCES_NAME, MODE_PRIVATE); + mPreferences = getSharedPreferences(GesturesConstants.PREFERENCES_NAME, MODE_PRIVATE); + } + + @SuppressWarnings({ "UnusedDeclaration" }) + public void back(View v) { + finish(); } @Override @@ -106,12 +106,6 @@ public class GesturesActivity extends ListActivity implements AdapterView.OnItem cleanupRenameDialog(); } - private void checkForEmpty() { - if (mAdapter.getCount() == 0) { - mEmpty.setText(R.string.gestures_empty); - } - } - @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); @@ -257,7 +251,6 @@ public class GesturesActivity extends ListActivity implements AdapterView.OnItem adapter.setNotifyOnChange(false); adapter.remove(info); adapter.sort(mSorter); - checkForEmpty(); adapter.notifyDataSetChanged(); LauncherModel.deleteGestureFromDatabase(this, info); @@ -269,7 +262,8 @@ public class GesturesActivity extends ListActivity implements AdapterView.OnItem if (position == 1) { final CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkbox); checkBox.toggle(); - mPreferences.edit().putBoolean(PREFERENCES_HOME_KEY, checkBox.isChecked()).commit(); + mPreferences.edit().putBoolean(GesturesConstants.PREFERENCES_HOME_KEY, + checkBox.isChecked()).commit(); } } @@ -328,12 +322,6 @@ public class GesturesActivity extends ListActivity implements AdapterView.OnItem adapter.sort(mSorter); adapter.notifyDataSetChanged(); } - - @Override - protected void onPostExecute(Boolean aBoolean) { - super.onPostExecute(aBoolean); - checkForEmpty(); - } } private class GesturesAdapter extends ArrayAdapter { @@ -471,7 +459,7 @@ public class GesturesActivity extends ListActivity implements AdapterView.OnItem ((TextView) convertView.findViewById(R.id.title)).setText(title); ((TextView) convertView.findViewById(R.id.summary)).setText(summary); ((CheckBox) convertView.findViewById(R.id.checkbox)).setChecked( - mPreferences.getBoolean(PREFERENCES_HOME_KEY, false)); + mPreferences.getBoolean(GesturesConstants.PREFERENCES_HOME_KEY, false)); return convertView; } diff --git a/src/com/android/launcher/GesturesConstants.java b/src/com/android/launcher/GesturesConstants.java index 3151ea386e..93a1f10ba8 100644 --- a/src/com/android/launcher/GesturesConstants.java +++ b/src/com/android/launcher/GesturesConstants.java @@ -22,4 +22,6 @@ interface GesturesConstants { final long MATCH_DELAY = 370; final float LENGTH_THRESHOLD = 120.0f; int PATH_SAMPLE_COUNT = 10; + String PREFERENCES_NAME = "gestures"; + String PREFERENCES_HOME_KEY = "gestures.home"; } diff --git a/src/com/android/launcher/Launcher.java b/src/com/android/launcher/Launcher.java index 21b69491a2..be013eb45e 100644 --- a/src/com/android/launcher/Launcher.java +++ b/src/com/android/launcher/Launcher.java @@ -984,9 +984,9 @@ public final class Launcher extends Activity implements View.OnClickListener, On // TODO: This really should not be done here every time final SharedPreferences preferences = - getSharedPreferences(GesturesActivity.PREFERENCES_NAME, MODE_PRIVATE); + getSharedPreferences(GesturesConstants.PREFERENCES_NAME, MODE_PRIVATE); final boolean homeKey = preferences.getBoolean( - GesturesActivity.PREFERENCES_HOME_KEY, false); + GesturesConstants.PREFERENCES_HOME_KEY, false); if (!homeKey) { if (!mWorkspace.isDefaultScreenShowing()) {