summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Mast <andy@cyngn.com>2014-07-01 11:46:41 -0700
committerAndy Mast <andy@cyngn.com>2014-07-03 17:10:09 -0700
commit3a864f06103819671efe1e579958557f3d2cb24f (patch)
tree9e5a613b63a79946d63ae806f9e76d54be59924a
parent9293ab6489ffca81afafa5c3ebf975b5b86f5d2c (diff)
downloadpackages_apps_ThemeChooser-3a864f06103819671efe1e579958557f3d2cb24f.tar.gz
packages_apps_ThemeChooser-3a864f06103819671efe1e579958557f3d2cb24f.tar.bz2
packages_apps_ThemeChooser-3a864f06103819671efe1e579958557f3d2cb24f.zip
Add apply/edit buttons
Change-Id: I6286d50c7001a0ffe89c1f89ad93012b15fb60b5
-rw-r--r--res/layout/v2_activity_main.xml18
-rw-r--r--res/values/strings.xml1
-rw-r--r--src/org/cyanogenmod/theme/chooserv2/ChooserActivity.java81
3 files changed, 98 insertions, 2 deletions
diff --git a/res/layout/v2_activity_main.xml b/res/layout/v2_activity_main.xml
index c8f9eba..e2f88f0 100644
--- a/res/layout/v2_activity_main.xml
+++ b/res/layout/v2_activity_main.xml
@@ -26,4 +26,22 @@
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"/>
</org.cyanogenmod.theme.chooserv2.PagerContainer>
+ <LinearLayout
+ android:id="@+id/apply_edit_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingLeft="48dp"
+ android:paddingRight="48dp">
+ <Button android:id="@+id/apply"
+ android:layout_width="0dp"
+ android:layout_height="48dp"
+ android:layout_weight="1"
+ android:text="@string/apply"/>
+
+ <Button android:id="@+id/edit"
+ android:layout_width="0dp"
+ android:layout_height="48dp"
+ android:layout_weight="1"
+ android:text="@string/edit"/>
+ </LinearLayout>
</LinearLayout> \ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 86dbff7..395e85c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -33,6 +33,7 @@
<string name="default_tag">(Default)</string>
<string name="apply">Apply</string>
+ <string name="edit">Edit</string>
<string name="applying">Applying\u2026</string>
<string name="remove">Remove</string>
<string name="update">Update</string>
diff --git a/src/org/cyanogenmod/theme/chooserv2/ChooserActivity.java b/src/org/cyanogenmod/theme/chooserv2/ChooserActivity.java
index 52ace61..10ae97b 100644
--- a/src/org/cyanogenmod/theme/chooserv2/ChooserActivity.java
+++ b/src/org/cyanogenmod/theme/chooserv2/ChooserActivity.java
@@ -17,8 +17,10 @@ package org.cyanogenmod.theme.chooserv2;
import android.content.Context;
import android.content.res.ThemeConfig;
+import android.content.res.ThemeManager;
import android.database.Cursor;
import android.os.Bundle;
+import android.provider.ThemesContract;
import android.provider.ThemesContract.ThemesColumns;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
@@ -31,21 +33,26 @@ import android.support.v4.view.ViewPager;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
import android.widget.TextView;
import org.cyanogenmod.theme.chooser.R;
public class ChooserActivity extends FragmentActivity
- implements LoaderManager.LoaderCallbacks<Cursor> {
+ implements LoaderManager.LoaderCallbacks<Cursor>, ThemeManager.ThemeChangeListener {
public static final String DEFAULT = ThemeConfig.HOLO_DEFAULT;
private PagerContainer mContainer;
private ThemeViewPager mPager;
private TextView mThemeName;
+ private Button mApply;
+ private Button mEdit;
+ private ViewGroup mApplyEditBtns;
private ThemesAdapter mAdapter;
+ private ThemeManager mService;
private boolean mExpanded = false;
-
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.v2_activity_main);
@@ -53,6 +60,9 @@ public class ChooserActivity extends FragmentActivity
mContainer = (PagerContainer) findViewById(R.id.pager_container);
mPager = (ThemeViewPager) findViewById(R.id.viewpager);
mThemeName = (TextView) findViewById(R.id.theme_name);
+ mApplyEditBtns = (ViewGroup) findViewById(R.id.apply_edit_container);
+ mApply = (Button) findViewById(R.id.apply);
+ mEdit = (Button) findViewById(R.id.edit);
mPager.setOnClickListener(mPagerClickListener);
mAdapter = new ThemesAdapter(this);
@@ -77,9 +87,59 @@ public class ChooserActivity extends FragmentActivity
}
});
+ mApply.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ int position = mPager.getCurrentItem();
+ String pkgName = mAdapter.getItemPkgName(position);
+ mService.requestThemeChange(pkgName);
+ }
+ });
+
+ mEdit.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ mExpanded = true;
+ mContainer.expand();
+ ThemeFragment f = (ThemeFragment) getSupportFragmentManager()
+ .findFragmentByTag(getFragmentTag(mPager.getCurrentItem()));
+ f.expand();
+ }
+ });
+
+ mService = (ThemeManager) getSystemService(Context.THEME_SERVICE);
getSupportLoaderManager().initLoader(0, null, this);
}
+ @Override
+ protected void onResume() {
+ super.onResume();
+ mService.onClientResumed("temp_placeholder", this);
+ }
+
+ @Override
+ public void onBackPressed() {
+ if (mExpanded) {
+ mExpanded = false;
+ mContainer.collapse();
+ ThemeFragment f = (ThemeFragment) getSupportFragmentManager()
+ .findFragmentByTag(getFragmentTag(mPager.getCurrentItem()));
+ f.collapse();
+ } else {
+ super.onBackPressed();
+ }
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ mService.onClientPaused("temp_placeholder");
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ mService.onClientDestroyed("temp_placeholder");
+ }
+
private void updateThemeName() {
int position = mPager.getCurrentItem();
String name = mAdapter.getItemName(position);
@@ -139,6 +199,16 @@ public class ChooserActivity extends FragmentActivity
selectionArgs, sortOrder);
}
+ @Override
+ public void onProgress(int progress) {
+
+ }
+
+ @Override
+ public void onFinish(boolean isSuccess) {
+
+ }
+
public class ThemesAdapter extends FragmentPagerAdapter {
private Cursor mCursor;
private Context mContext;
@@ -170,6 +240,13 @@ public class ChooserActivity extends FragmentActivity
return title;
}
+ public String getItemPkgName(int position) {
+ mCursor.moveToPosition(position);
+ int pkgIdx = mCursor.getColumnIndex(ThemesContract.ThemesColumns.PKG_NAME);
+ String pkgName = mCursor.getString(pkgIdx);
+ return pkgName;
+ }
+
public void swapCursor(Cursor c) {
mCursor = c;
}