1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
/*
*
* Copyright (c) 2010 Steve Slaven
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package net.hoopajoo.android.SoftKeys;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
public class Prefs extends PreferenceActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
// setup launchers list
Intent i = new Intent( Intent.ACTION_MAIN );
i.addCategory( Intent.CATEGORY_HOME );
fillListFromIntent( (ListPreference)findPreference( "launcher" ), i, null, null );
fillListFromIntent( (ListPreference)findPreference( "launcher2" ), i, null, null );
i = new Intent( "net.hoopajoo.android.SoftKeys.THEMES" );
i.addCategory( Intent.CATEGORY_DEFAULT );
fillListFromIntent( (ListPreference)findPreference( "theme" ), i, "Default", "" );
String ver = "unknown";
try {
PackageInfo info = getPackageManager().getPackageInfo( "net.hoopajoo.android.SoftKeys", PackageManager.GET_META_DATA );
ver = info.versionName;
}catch( Exception e ) {
}
Preference version = (Preference)findPreference( "pref_version" );
version.setSummary( getString( R.string.pref_version_summary, ver ) );
}
private void fillListFromIntent( ListPreference l, Intent i, String firstItem, String firstValue ) {
PackageManager p = getPackageManager();
List<ResolveInfo> packages = p.queryIntentActivities( i, 0 );
ArrayList<String> display = new ArrayList<String>();
ArrayList<String> values = new ArrayList<String>();
if( firstItem != null ) {
display.add( firstItem );
values.add( firstValue );
}
for( Iterator<ResolveInfo> it = packages.iterator(); it.hasNext(); ) {
ResolveInfo info = it.next();
values.add( info.activityInfo.applicationInfo.packageName );
display.add( info.activityInfo.loadLabel( p ).toString() );
}
l.setEntryValues( values.toArray( new CharSequence[ values.size() ] ) );
l.setEntries( display.toArray( new CharSequence[ values.size() ] ) );
}
}
|