You are on page 1of 12

package com.synapse.

affinity;
import
import
import
import
import
import

java.util.ArrayList;
java.util.Arrays;
java.util.HashSet;
java.util.LinkedList;
java.util.Queue;
java.util.Set;

import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import

android.app.AlertDialog;
android.content.Context;
android.content.DialogInterface;
android.content.Intent;
android.content.SharedPreferences;
android.content.SharedPreferences.Editor;
android.content.SharedPreferences.OnSharedPreferenceChangeListener;
android.content.pm.PackageInfo;
android.content.pm.PackageManager.NameNotFoundException;
android.content.res.Configuration;
android.net.ConnectivityManager;
android.os.Bundle;
android.os.Handler;
android.preference.CheckBoxPreference;
android.preference.ListPreference;
android.preference.MultiSelectListPreference;
android.preference.Preference;
android.preference.Preference.OnPreferenceChangeListener;
android.preference.PreferenceActivity;
android.preference.PreferenceCategory;
android.preference.PreferenceManager;
android.preference.PreferenceScreen;
android.support.v4.app.FragmentManager;
android.telephony.PhoneStateListener;
android.telephony.TelephonyManager;
android.util.Log;
android.widget.Toast;

//private Object sharedpreferences;


public class Settings extends PreferenceActivity implements OnSharedPreferenceCh
angeListener
{
private static final String TAG = "Settings";
private Preference pref;
private String summaryStr;
String prefixStr;
SharedPreferences userDetails;
private Cs_profileRetrive obj;
final Handler handler = new Handler();
Queue queue = new LinkedList();
private boolean online;
public static boolean callFromSettings=false;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.test_settings);
//findViewById(android.R.id.).setBackgroundColor(Color.WHITE);

userDetails = getApplicationContext().getSharedPreferences("userdetails",
0);
userDetails.registerOnSharedPreferenceChangeListener(this);
checkConnectivity();
/*
Preference button = (Preference)findPreference("button");
button.setOnPreferenceClickListener(new Preference.OnPreferenceC
lickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {

//code for what you want it to do


Intent myIntent = new Intent(Settings.this,Cs_p
rofileRetrive.class);
startActivity(myIntent);
return true;
}
});
*/
// SharedPreferences sharedPref = getPreferenceScreen().getSharedPreferenc
es();
PreferenceScreen screen = getPreferenceManager().createPreferenc
eScreen(this);

PreferenceCategory category1 = new PreferenceCategory(this);


category1.setTitle("User details");
screen.addPreference(category1);
Preference textPref1 = new Preference(this);
textPref1.setTitle("Mobile Phone Number");
textPref1.setSummary("Your Mobile Phone Number");
textPref1.setSelectable(false);
textPref1.setPersistent(false);
textPref1.setKey("phone");
category1.addPreference(textPref1);
ListPreference listPref = new ListPreference(this);
listPref.setTitle("Language Select");
listPref.setSummary("select Language");
listPref.setEntries(R.array.LanguageSelect);
listPref.setEntryValues(R.array.LanguageSelectValues);
listPref.setKey("language");
category1.addPreference(listPref);
/*

CheckBoxPreference checkBoxPref = new CheckBoxPreference(this);


checkBoxPref.setTitle("Service Deactivation");
checkBoxPref.setSummary("Deactivate Activated Services");
checkBoxPref.setKey("service1");
checkBoxPref.setChecked(true);
category1.addPreference(checkBoxPref);
*/
//String[] selections = {"service1","service2"};
//CharSequence[] entries = new CharSequence[];
//CharSequence[] entryValues = new CharSequence[]{ "1", "2", "3"
};
if(online){
String xmlLocation ="http://amp.dialog.lk/api/?u
sername=optimus&password=prime120Yk&serviceid=all&command=getProfile&agent=andro
id&channel=ANDROID&gsid=10001&uid=777330134";
obj.arrBuckets.clear();
obj = new Cs_profileRetrive(xmlLocation);

//obj4.getFaceLanguageTag("all");
obj.fetchXMLOnline();
if(obj.arrBuckets.isEmpty()){
Toast.makeText(Settings.this,
"You dont have subscribed services", Toa
st.LENGTH_LONG).show();
}else{
final CharSequence[] chars = obj
.arrBuckets.toArray(new CharSequence[obj.arrBuckets.size()]);
CharSequence f = "1";
CharSequence [] charsValues = ne
w CharSequence [chars.length];
for(int i = 0; i < charsValues.l
ength; i++){
charsValues[i] = f;
}

//Set<String> selectionSet = new


HashSet<String>();
//selectionSet.addAll(Arrays.asL

ist(selections));
ListPreferenceMultiSelect multiS
electPref = new ListPreferenceMultiSelect(this);
//multiSelectPre
f.restoreCheckedEntries2();
multiSelectPref.setKey("
multiselect");
multiSelectPref.setTitle
("Deactivate Subscribed Services");
multiSelectPref.setSumma
ry("Deactivate Services");
multiSelectPref.setDialo
gTitle("Deactivation");
multiSelectPref.setEntri
es(chars);
multiSelectPref.setEntry
Values(charsValues);
//multiSelectPref.setSel
ectable(true);
//multiSelectPref.setVal
ueIndex(1);
multiSelectPref.setEnabled(
true);
multiSelectPref.setPersiste
nt(true);
multiSelectPref.setDefaul
tValue(charsValues);
category1.addPreference(
multiSelectPref);
multiSelectPref.setOnPrefer
enceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenc
eChange(Preference preference, Object newValue) {
//newValue will be the ent
ryValue for the entry selected
return true;
}
});
}

}else{
showAlertDialog();
}

PreferenceCategory category2 = new PreferenceCategory(this);


category2.setTitle("Application Information");
screen.addPreference(category2);
Preference textPref2 = new Preference(this);
textPref2.setTitle("Affinity");
textPref2.setSelectable(false);
textPref2.setSummary("Application version");
textPref2.setKey("prefAppInfo");
textPref2.setPersistent(false);
category2.addPreference(textPref2);

setPreferenceScreen(screen);
setLanguage();
appInfo();
mobilePhone();

}
public void setLanguage(){
String savedLanguage = null;
userDetails = getApplicationContext().getSharedPreferences("userdetails"
, 0);

if (userDetails.contains("language"))
{
savedLanguage = userDetails.getString("language", "sinhala");
Log.i(TAG,savedLanguage);
}
pref = findPreference("language");
//summaryStr = (String)pref.getSummary();

pref.setSummary(savedLanguage);

}
public void appInfo(){
String appNameComplete= null;
String appName =null;
userDetails = getApplicationContext().getSharedPreferences("userdetails"
, 0);
if (userDetails.contains("appName"))
{
appName =userDetails.getString("appName", "Affinity");

appNameComplete= appName+".v"+Integer.toString(getVertio
nCode());
Log.i(TAG,appNameComplete);
}
pref = findPreference("prefAppInfo");
pref.setSummary(appNameComplete);
pref.setTitle(appName);

}
public void mobilePhone(){

String mobile =null;


userDetails = getApplicationContext().getSharedPreferences("userdetails"
, 0);
if (userDetails.contains("phone"))
{
mobile =userDetails.getString("phone", "779779991");

Log.i(TAG,mobile);
}
pref = findPreference("phone");
pref.setSummary(mobile);

}
public void reload() {
boolean callToAddFavorites =false;
boolean callFromFavorite =false;
boolean landscapeCall =false;
//int orien = getResources().getConfiguration().orientation;
Configuration config = getResources().getConfiguration();
if(config.orientation== config.ORIENTATION_LANDSCAPE){
landscapeCall=true;
}else{
landscapeCall =false;
}
Intent a = new Intent(Settings.this, TabLayoutActivityMain.class
);
//a.putExtra("hashMap", hashMap);
a.putExtra("numRows",2 );
a.putExtra("numCols",2);
a.putExtra("calltoAddFavorite",callToAddFavorites );
a.putExtra("callFromFavorite",callFromFavorite );
callFromSettings=true;
a.putExtra("tabPos",1 );
a.putExtra("landscapeCall", landscapeCall);

startActivity(a);
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, S
tring key)
{
userDetails = getApplicationContext().getSharedPreferences("userdetails"
, 0);
//Get the current summary
pref = findPreference(key);
//summaryStr = (String)pref.getSummary();
//String language =null;
//String pref_str=pref.toString();
//Log.i(TAG,pref_str);
Log.i(TAG,key);
//Get the user input data

//Update the summary with user input data


if(key.equals("language")&!key.equals(null)&!key.isEmpty()){
prefixStr = sharedPreferences.getString(key, "");
pref.setSummary(prefixStr);
Editor editor = userDetails.edit();
editor.putString("language", prefixStr);
editor.commit();
Intent myIntent = new Intent(Settings.this,SplashActivity.class)
;
startActivity(myIntent);
}
if(key.equals("multiselect")&!key.equals(null)&!key.isEmpty()){
CharSequence[] entries = ((ListPreference) pref).getEntries();
String currValue = ((ListPreference) pref).getValue();
String[] mEntriesString = new String[entries.length];
int i=0;
for(CharSequence ch: entries){
mEntriesString[i++] = ch.toString();
}
prefixStr = sharedPreferences.getString(key, "");

Log.i(TAG,prefixStr);
//Log.i(TAG,currValue);
ArrayList<String> arrayValues = getChildren(prefixStr);
//Log.i(TAG,((ArrayList<String>) selections).get(0));
queue.clear();
int b=0;
for(String s1 : arrayValues){
if(s1.equals("1")){
Log.i(TAG,arrayValues.get(b));
Log.i(TAG,mEntriesString[b]);
}else{
String url ="http://amp.dialog.lk/api/?uid=77733
0134&username=optimus&password=prime120Yk&serviceid="+mEntriesString[b]+"&comman
d=deactivate&agent=android&channel=ANDROID&gsid=10001";
queue.add(url);

handler.postDelayed(runnable,2000);
}
b=b+1;
}
/*
int a=0;
for(String s : mEntriesString){
Log.i(TAG,mEntriesString[a++]);
}
*/
}
}
final Runnable runnable = new Runnable() {

@Override
public void run() {
for(Object s : queue) {

String body=HttpRequest.get(getBaseContext(), queue.element().to


String());
//HttpResponse response = httpClient.execute(new HttpGet
(url1));
//String body = new BasicResponseHandler().handleRespons
e(response);
//String body = IOUtils.toString(in, encoding);
Log.i(TAG,"html full response = "+body);
Log.i(TAG,"html response = "+manipulateResponse(body));
String response1=manipulateResponse(body);
if(response1.equals("0000")){
queue.remove();
}

}
//
reload();
}
};
private String manipulateResponse(String rawResponse){
Log.i(TAG,"before manipulate response = "+rawResponse);
ArrayList<String> raw = new ArrayList<String>();
for (String val: rawResponse.split(":")){
if(!val.equals("")&&!val.equals("start")){
raw.add(val);
}
}

//String response =rawResponse.substring(rawResponse.lalastIndex


Of(":") + 1,rawResponse.lastIndexOf(":") + 5);
// Grab the last segment
String response = raw.get(1);

Log.i(TAG,"after manipulate response = "+response);


return response;
}

public ArrayList<String> getChildren(String allChildren ){


ArrayList<String> children = new ArrayList<String>();
for (String val: allChildren.split(",")){
if(!val.equals("")&&!val.equals("start")){
children.add(val);
}
}
return children;
}
public int getVertionCode(){
PackageInfo packageInfo;
try {
packageInfo = getPackageManager().getPackageInfo(getBaseContext(
).getPackageName(), 0);
int curVersionCode = packageInfo.versionCode;
return curVersionCode;
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return 0;
}

}
public void checkConnectivity() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(
Context.CONNECTIVITY_SERVICE);
if (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
.isConnectedOrConnecting()
|| cm.getNetworkInfo(ConnectivityManager.TYPE_WI
FI)
.isConnectedOrConnecting())
online = true;
else
online = false;

}
private void showAlertDialog(){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
Settings.this);
// set title
alertDialogBuilder.setTitle("Please check your internet connecti
on ");
// set dialog message
alertDialogBuilder
.setMessage("You need a acttive internet connection to v
iew subscribed services")
.setCancelable(false)
.setPositiveButton("ok",new DialogInterface.OnClickListe
ner() {
public void onClick(DialogInterface dialog,int i
d) {
// if this button is clicked, close
// current activity
dialog.dismiss();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();

protected void onResume() {


super.onResume();
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}
protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
}
}

You might also like