diff options
-rw-r--r-- | res/layout/v2_activity_main.xml | 18 | ||||
-rw-r--r-- | res/values/strings.xml | 1 | ||||
-rw-r--r-- | src/org/cyanogenmod/theme/chooserv2/ChooserActivity.java | 81 |
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; } |