f16bfd6b5edd929ffcc4b3e16d5237d788ddb71f
[android/platform/packages/apps/Tag.git] / src / com / android / apps / tag / TagBrowserActivity.java
1 /*
2  * Copyright (C) 2010 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.android.apps.tag;
18
19 import android.app.Activity;
20 import android.app.AlertDialog;
21 import android.app.Dialog;
22 import android.app.TabActivity;
23 import android.content.Context;
24 import android.content.DialogInterface;
25 import android.content.Intent;
26 import android.content.SharedPreferences;
27 import android.content.res.Resources;
28 import android.nfc.NfcAdapter;
29 import android.os.Bundle;
30 import android.provider.Settings;
31 import android.view.Menu;
32 import android.view.MenuItem;
33 import android.widget.TabHost;
34
35 /**
36  * A browsing {@link Activity} that displays the saved tags in categories under tabs.
37  */
38 public class TagBrowserActivity extends TabActivity implements DialogInterface.OnClickListener {
39
40     private static final int DIALOG_NFC_OFF = 1;
41
42     @Override
43     public void onCreate(Bundle savedInstanceState) {
44         super.onCreate(savedInstanceState);
45
46         setContentView(R.layout.main);
47
48         Resources res = getResources();
49         TabHost tabHost = getTabHost();
50
51         tabHost.addTab(tabHost.newTabSpec("tags")
52                 .setIndicator(getText(R.string.tab_tags),
53                         res.getDrawable(R.drawable.ic_tab_all_tags))
54                 .setContent(new Intent().setClass(this, TagList.class)));
55
56         tabHost.addTab(tabHost.newTabSpec("starred")
57                 .setIndicator(getText(R.string.tab_starred),
58                         res.getDrawable(R.drawable.ic_tab_starred))
59                 .setContent(new Intent().setClass(this, TagList.class)
60                         .putExtra(TagList.EXTRA_SHOW_STARRED_ONLY, true)));
61 /* temporarily disable my tag
62         tabHost.addTab(tabHost.newTabSpec("mytag")
63                 .setIndicator(getText(R.string.tab_my_tag),
64                         res.getDrawable(R.drawable.ic_tab_my_tag))
65                 .setContent(new Intent().setClass(this, MyTagActivity.class)));
66 */
67     }
68
69     @Override
70     public void onStart() {
71         super.onStart();
72
73         // Restore the last active tab
74         SharedPreferences prefs = getSharedPreferences("prefs", Context.MODE_PRIVATE);
75         getTabHost().setCurrentTabByTag(prefs.getString("tab", "tags"));
76     }
77
78     @Override
79     public void onResume() {
80         super.onResume();
81         // Check to see if NFC is on
82         NfcAdapter nfc = NfcAdapter.getDefaultAdapter();
83         if (nfc == null || !nfc.isEnabled()) {
84             showDialog(DIALOG_NFC_OFF);
85         }
86     }
87
88     @Override
89     public void onStop() {
90         super.onStop();
91
92         // Save the active tab
93         SharedPreferences.Editor edit = getSharedPreferences("prefs", Context.MODE_PRIVATE).edit();
94         edit.putString("tab", getTabHost().getCurrentTabTag());
95         edit.apply();
96     }
97
98     @Override
99     public Dialog onCreateDialog(int dialogId, Bundle args) {
100         if (dialogId == DIALOG_NFC_OFF) {
101             return new AlertDialog.Builder(this)
102                     .setTitle(R.string.dialog_title_nfc_off)
103                     .setMessage(R.string.dialog_text_nfc_off)
104                     .setPositiveButton(R.string.button_settings, this)
105                     .setNegativeButton(android.R.string.cancel, this)
106                     .setCancelable(true)
107                     .create();
108         }
109
110         throw new IllegalArgumentException("Unknown dialog id " + dialogId);
111     }
112
113     @Override
114     public void onClick(DialogInterface dialog, int which) {
115         if (which == DialogInterface.BUTTON_POSITIVE) {
116             // Thake the user to the wireless settings panel, where they can enable NFC
117             Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
118             startActivity(intent);
119         }
120         dialog.dismiss();
121     }
122
123     @Override
124     public boolean onCreateOptionsMenu(Menu menu) {
125         getMenuInflater().inflate(R.menu.menu, menu);
126         return true;
127     }
128
129     @Override
130     public boolean onOptionsItemSelected(MenuItem item) {
131         switch (item.getItemId()) {
132             case R.id.help:
133                 HelpUtils.openHelp(this);
134                 return true;
135
136             default:
137                 return super.onOptionsItemSelected(item);
138         }
139     }
140 }