From 2735c80979f166ddaef8691bceaefbdbb0d102a7 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Sat, 31 Jul 2010 18:39:56 -0700 Subject: [PATCH] Added emtpy add-on activity, made links to it and made it pretty --- astrid/AndroidManifest.xml | 7 ++- astrid/res/drawable/tab_add.png | Bin 0 -> 2628 bytes ...{tea_tab_extensions.png => tab_addons.png} | Bin .../{tea_tab_extra.png => tab_advanced.png} | Bin .../{tea_tab_basic.png => tab_edit.png} | Bin astrid/res/layout/addon_activity.xml | 38 +++++++++++++++ astrid/res/layout/task_edit_activity.xml | 5 +- astrid/res/values/strings-core.xml | 29 ++++++++--- .../astrid/activity/AddOnActivity.java | 36 ++++++++++++++ .../astrid/activity/TaskEditActivity.java | 45 ++++++++++++++---- .../astrid/activity/TaskListActivity.java | 23 ++++----- .../todoroo/astrid/service/AddonService.java | 33 ------------- 12 files changed, 153 insertions(+), 63 deletions(-) create mode 100644 astrid/res/drawable/tab_add.png rename astrid/res/drawable/{tea_tab_extensions.png => tab_addons.png} (100%) rename astrid/res/drawable/{tea_tab_extra.png => tab_advanced.png} (100%) rename astrid/res/drawable/{tea_tab_basic.png => tab_edit.png} (100%) create mode 100644 astrid/res/layout/addon_activity.xml create mode 100644 astrid/src/com/todoroo/astrid/activity/AddOnActivity.java diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index 3b1405d94..ca7cb8e7d 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -90,7 +90,8 @@ + android:windowSoftInputMode="stateHidden" + android:theme="@style/Theme"> @@ -101,6 +102,10 @@ + + diff --git a/astrid/res/drawable/tab_add.png b/astrid/res/drawable/tab_add.png new file mode 100644 index 0000000000000000000000000000000000000000..22844b1f3d81ecbc014298d063a073d1b560c5e0 GIT binary patch literal 2628 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 m%d#xXvMkH8EX(qLC;tJsj_qb2$wI*Z0000 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/astrid/res/layout/task_edit_activity.xml b/astrid/res/layout/task_edit_activity.xml index 60a1a1b8c..91e5c5504 100644 --- a/astrid/res/layout/task_edit_activity.xml +++ b/astrid/res/layout/task_edit_activity.xml @@ -250,13 +250,15 @@ @@ -264,6 +266,7 @@ android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" + android:layout_weight="1" android:gravity="bottom" android:paddingTop="5dip" android:baselineAligned="false"> diff --git a/astrid/res/values/strings-core.xml b/astrid/res/values/strings-core.xml index c1e1226ce..20a30f974 100644 --- a/astrid/res/values/strings-core.xml +++ b/astrid/res/values/strings-core.xml @@ -130,12 +130,7 @@ Astrid should to be updated to the latest version in the Android market! Please do that before continuing, or wait a few seconds. - - - Support Astrid and get more productive with - the Astrid Power Pack backup, widgets, no ads, and calendar integration. - Power up today! - + Go To Market @@ -353,6 +348,12 @@ to the plugin creator for fastest service. Specific Day + + No Add-ons Found! + + + Get Some Add-ons + @@ -433,8 +434,22 @@ to the plugin creator for fastest service. - + + Astrid: Add Ons + + Astrid Team + + + Installed + + + Available + + + Support Astrid and get more productive with + the Astrid Power Pack backup, widgets, no ads, and calendar integration. + Power up today! diff --git a/astrid/src/com/todoroo/astrid/activity/AddOnActivity.java b/astrid/src/com/todoroo/astrid/activity/AddOnActivity.java new file mode 100644 index 000000000..abcd77c27 --- /dev/null +++ b/astrid/src/com/todoroo/astrid/activity/AddOnActivity.java @@ -0,0 +1,36 @@ +package com.todoroo.astrid.activity; + + +import android.app.TabActivity; +import android.content.res.Resources; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.widget.TabHost; + +import com.timsu.astrid.R; + +public class AddOnActivity extends TabActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // set up tab host + Resources r = getResources(); + TabHost tabHost = getTabHost(); + tabHost.setPadding(0, 4, 0, 0); + LayoutInflater.from(this).inflate(R.layout.addon_activity, + tabHost.getTabContentView(), true); + tabHost.addTab(tabHost.newTabSpec(r.getString(R.string.AOA_tab_installed)). + setIndicator(r.getString(R.string.AOA_tab_installed), + r.getDrawable(R.drawable.tab_addons)).setContent( + R.id.installed_tab)); + tabHost.addTab(tabHost.newTabSpec(r.getString(R.string.AOA_tab_available)). + setIndicator(r.getString(R.string.AOA_tab_available), + r.getDrawable(R.drawable.tab_add)).setContent( + R.id.availble_tab)); + + setTitle(R.string.AOA_title); + } + +} diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java index 39ddcebc7..385eb2847 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java @@ -27,36 +27,41 @@ import java.util.List; import android.app.AlertDialog; import android.app.DatePickerDialog; -import android.app.DatePickerDialog.OnDateSetListener; import android.app.TabActivity; +import android.app.DatePickerDialog.OnDateSetListener; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; -import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.content.IntentFilter; +import android.content.DialogInterface.OnCancelListener; import android.content.res.Resources; import android.os.Bundle; +import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.AdapterView; -import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; +import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.DatePicker; import android.widget.EditText; import android.widget.ImageButton; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RemoteViews; import android.widget.Spinner; import android.widget.TabHost; +import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; import android.widget.ToggleButton; +import android.widget.AdapterView.OnItemSelectedListener; +import android.widget.ImageView.ScaleType; import com.flurry.android.FlurryAgent; import com.timsu.astrid.R; @@ -179,15 +184,15 @@ public final class TaskEditActivity extends TabActivity { tabHost.getTabContentView(), true); tabHost.addTab(tabHost.newTabSpec(r.getString(R.string.TEA_tab_basic)). setIndicator(r.getString(R.string.TEA_tab_basic), - r.getDrawable(R.drawable.tea_tab_basic)).setContent( + r.getDrawable(R.drawable.tab_edit)).setContent( R.id.tab_basic)); tabHost.addTab(tabHost.newTabSpec(r.getString(R.string.TEA_tab_extra)). setIndicator(r.getString(R.string.TEA_tab_extra), - r.getDrawable(R.drawable.tea_tab_extra)).setContent( + r.getDrawable(R.drawable.tab_advanced)).setContent( R.id.tab_extra)); tabHost.addTab(tabHost.newTabSpec(r.getString(R.string.TEA_tab_addons)). setIndicator(r.getString(R.string.TEA_tab_addons), - r.getDrawable(R.drawable.tea_tab_extensions)).setContent( + r.getDrawable(R.drawable.tab_addons)).setContent( R.id.tab_addons)); // populate control set @@ -213,8 +218,32 @@ public final class TaskEditActivity extends TabActivity { if(AddonService.isPowerPack()) { controls.add(new GCalControlSet(this, addonsAddons)); controls.add(new TimerControlSet(this, addonsAddons)); - } else { - addonsAddons.addView(AddonService.displayPowerPackHelp(this)); + } + + // show add-on help if necessary + if(addonsAddons.getChildCount() == 0) { + ImageView ppIcon = new ImageView(this); + ppIcon.setImageResource(R.drawable.icon_pp); + ppIcon.setScaleType(ScaleType.CENTER); + ppIcon.setPadding(5, 10, 5, 10); + addonsAddons.addView(ppIcon); + + TextView addOnText = new TextView(this); + addOnText.setText(R.string.TEA_no_addons); + addOnText.setTextAppearance(this, R.style.TextAppearance_TLA_NoItems); + addOnText.setGravity(Gravity.CENTER); + addOnText.setPadding(5, 10, 5, 10); + addonsAddons.addView(addOnText); + + Button addOnButton = new Button(this); + addOnButton.setText(R.string.TEA_addons_button); + addonsAddons.addView(addOnButton); + addOnButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(TaskEditActivity.this, AddOnActivity.class)); + } + }); } // read data diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java index c189db4d8..1956f7988 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java @@ -20,25 +20,25 @@ import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.ContextMenu; -import android.view.ContextMenu.ContextMenuInfo; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.view.Window; +import android.view.ContextMenu.ContextMenuInfo; import android.view.View.OnClickListener; import android.view.View.OnKeyListener; -import android.view.Window; import android.view.inputmethod.EditorInfo; import android.widget.AbsListView; -import android.widget.AbsListView.OnScrollListener; -import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; -import android.widget.TextView.OnEditorActionListener; import android.widget.Toast; +import android.widget.AbsListView.OnScrollListener; +import android.widget.AdapterView.AdapterContextMenuInfo; +import android.widget.TextView.OnEditorActionListener; import com.flurry.android.FlurryAgent; import com.timsu.astrid.R; @@ -84,7 +84,7 @@ public class TaskListActivity extends ListActivity implements OnScrollListener { public static final int ACTIVITY_EDIT_TASK = 0; public static final int ACTIVITY_SETTINGS = 1; - public static final int ACTIVITY_PLUGINS = 2; + public static final int ACTIVITY_ADDONS = 2; public static final int ACTIVITY_MENU_EXTERNAL = 3; // --- menu codes @@ -187,9 +187,9 @@ public class TaskListActivity extends ListActivity implements OnScrollListener { MenuItem item; - /*item = menu.add(Menu.NONE, MENU_ADDONS_ID, Menu.NONE, + item = menu.add(Menu.NONE, MENU_ADDONS_ID, Menu.NONE, R.string.TLA_menu_addons); - item.setIcon(android.R.drawable.ic_menu_set_as);*/ + item.setIcon(android.R.drawable.ic_menu_set_as); item = menu.add(Menu.NONE, MENU_SETTINGS_ID, Menu.NONE, R.string.TLA_menu_settings); @@ -659,11 +659,8 @@ public class TaskListActivity extends ListActivity implements OnScrollListener { // handle my own menus switch (item.getItemId()) { case MENU_ADDONS_ID: - dialogUtilities.okDialog( - this, - "if this were real life, I would display your " + //$NON-NLS-1$ - "add-ons so you could enable/disable/rearrange them.", //$NON-NLS-1$ - null); + intent = new Intent(this, AddOnActivity.class); + startActivityForResult(intent, ACTIVITY_ADDONS); return true; case MENU_SETTINGS_ID: intent = new Intent(this, EditPreferences.class); diff --git a/astrid/src/com/todoroo/astrid/service/AddonService.java b/astrid/src/com/todoroo/astrid/service/AddonService.java index 6503b5dc7..e337ee3df 100644 --- a/astrid/src/com/todoroo/astrid/service/AddonService.java +++ b/astrid/src/com/todoroo/astrid/service/AddonService.java @@ -12,12 +12,6 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.net.Uri; -import android.view.Gravity; -import android.view.View; -import android.widget.Button; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; import com.timsu.astrid.R; import com.todoroo.andlib.service.ContextManager; @@ -68,33 +62,6 @@ public class AddonService { return isPowerPack; } - /** Displays power pack help */ - public static LinearLayout displayPowerPackHelp(final Activity activity) { - LinearLayout layout = new LinearLayout(activity); - layout.setOrientation(LinearLayout.VERTICAL); - ImageView imageView = new ImageView(activity); - imageView.setImageResource(R.drawable.icon_pp); - layout.addView(imageView); - - TextView textView = new TextView(activity); - textView.setText(R.string.DLG_power_pack); - textView.setTextSize(16); - textView.setGravity(Gravity.CENTER); - layout.addView(textView); - - Button button = new Button(activity); - button.setText(R.string.DLG_to_market); - button.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - new MarketClickListener(activity, POWER_PACK_PACKAGE); - } - }); - layout.addView(button); - - return layout; - } - /** * Takes users to the market *