alert dialogs are invoked from the decleared once in dialog util

This commit is contained in:
inosh-perera 2014-12-10 17:59:10 +05:30
parent 9697c1fa99
commit ac3bd52260
75 changed files with 1152 additions and 1165 deletions

View File

@ -379,6 +379,7 @@ int id setting_invite_email_edittext 0x7f06002f
int id setting_invite_email_imageview 0x7f060031
int id setting_invite_email_layout 0x7f06002e
int id setting_invite_email_textview 0x7f060032
int id severAddressLabel 0x7f060089
int id sg_button1 0x7f060039
int id sg_button2 0x7f06003a
int id sg_button3 0x7f06003b
@ -425,7 +426,6 @@ int id txtPinCode 0x7f060086
int id txtRegText 0x7f060066
int id txtRoot 0x7f06007b
int id txtSDK 0x7f060079
int id txtVw 0x7f060089
int id useLogo 0x7f060004
int id user_edit_location 0x7f060033
int id username 0x7f06006b
@ -518,12 +518,12 @@ int string abs__shareactionprovider_share_with_application 0x7f0b0009
int string action_settings 0x7f0b0023
int string already_registered 0x7f0b0010
int string app_name 0x7f0b0021
int string application_mgr_download_file_name 0x7f0b0091
int string application_mgr_download_location 0x7f0b0090
int string application_mgr_mime 0x7f0b0092
int string application_package_launcher_action 0x7f0b0094
int string application_package_prefix 0x7f0b0093
int string button_ok 0x7f0b008f
int string application_mgr_download_file_name 0x7f0b0092
int string application_mgr_download_location 0x7f0b0091
int string application_mgr_mime 0x7f0b0093
int string application_package_launcher_action 0x7f0b0095
int string application_package_prefix 0x7f0b0094
int string button_ok 0x7f0b0090
int string device_admin_disabled 0x7f0b002e
int string device_admin_enable_alert 0x7f0b003d
int string device_admin_enabled 0x7f0b002d
@ -537,17 +537,18 @@ int string dialog_authenticate 0x7f0b0071
int string dialog_checking_reg 0x7f0b0073
int string dialog_enrolling 0x7f0b0076
int string dialog_init_confirmation 0x7f0b0079
int string dialog_init_end 0x7f0b007b
int string dialog_init_end_general 0x7f0b007c
int string dialog_init_device_type 0x7f0b007b
int string dialog_init_end 0x7f0b007c
int string dialog_init_end_general 0x7f0b007d
int string dialog_init_middle 0x7f0b007a
int string dialog_license_agreement 0x7f0b0075
int string dialog_message_please_wait 0x7f0b0084
int string dialog_message_unregistering 0x7f0b0083
int string dialog_message_please_wait 0x7f0b0085
int string dialog_message_unregistering 0x7f0b0084
int string dialog_pin_confirmation 0x7f0b0077
int string dialog_pin_confirmation_end 0x7f0b0078
int string dialog_please_wait 0x7f0b0072
int string dialog_sender_id 0x7f0b0074
int string dialog_unregister 0x7f0b007d
int string dialog_unregister 0x7f0b007e
int string empty_app_title 0x7f0b0022
int string error_auth_failed_detail 0x7f0b0068
int string error_authentication_failed 0x7f0b0069
@ -574,16 +575,14 @@ int string gcm_registered 0x7f0b0011
int string gcm_unregistered 0x7f0b0012
int string hello_world 0x7f0b0024
int string hint_new_pin 0x7f0b0042
int string info_label_device 0x7f0b0086
int string info_label_imei 0x7f0b0085
int string info_label_imsi 0x7f0b008a
int string info_label_model 0x7f0b0087
int string info_label_no_sim 0x7f0b0088
int string info_label_operator 0x7f0b0089
int string info_label_os 0x7f0b008b
int string info_label_rooted 0x7f0b008c
int string info_label_rooted_answer_no 0x7f0b008e
int string info_label_rooted_answer_yes 0x7f0b008d
int string info_label_device 0x7f0b0087
int string info_label_imei 0x7f0b0086
int string info_label_imsi 0x7f0b008b
int string info_label_model 0x7f0b0088
int string info_label_no_sim 0x7f0b0089
int string info_label_operator 0x7f0b008a
int string info_label_os 0x7f0b008c
int string info_label_rooted 0x7f0b008d
int string intent_extra_fresh_reg_flag 0x7f0b004c
int string intent_extra_from_activity 0x7f0b0048
int string intent_extra_main_activity 0x7f0b004a
@ -591,27 +590,28 @@ int string intent_extra_message 0x7f0b004b
int string intent_extra_notification 0x7f0b004e
int string intent_extra_regid 0x7f0b0049
int string intent_extra_username 0x7f0b004d
int string menu_item_change_ip 0x7f0b0082
int string menu_item_change_pin 0x7f0b0081
int string menu_item_change_ip 0x7f0b0083
int string menu_item_change_pin 0x7f0b0082
int string menu_item_ip 0x7f0b003a
int string menu_item_log 0x7f0b003b
int string menu_item_operations 0x7f0b0038
int string menu_item_phone_info 0x7f0b0080
int string menu_item_phone_info 0x7f0b0081
int string menu_item_pin 0x7f0b0039
int string no 0x7f0b008f
int string options_clear 0x7f0b001f
int string options_exit 0x7f0b0020
int string options_register 0x7f0b001c
int string options_unregister 0x7f0b001d
int string register_button_text 0x7f0b007e
int string register_text_view_text_unregister 0x7f0b007f
int string registration_heading 0x7f0b0098
int string register_button_text 0x7f0b007f
int string register_text_view_text_unregister 0x7f0b0080
int string registration_heading 0x7f0b0099
int string server_register_error 0x7f0b001a
int string server_registered 0x7f0b0018
int string server_registering 0x7f0b0017
int string server_unregister_error 0x7f0b001b
int string server_unregistered 0x7f0b0019
int string server_util_req_type_get 0x7f0b0096
int string server_util_req_type_post 0x7f0b0095
int string server_util_req_type_get 0x7f0b0097
int string server_util_req_type_post 0x7f0b0096
int string shared_pref_client_id 0x7f0b005f
int string shared_pref_client_secret 0x7f0b0060
int string shared_pref_device_active 0x7f0b005e
@ -637,7 +637,7 @@ int string title_activity_authentication_error 0x7f0b0033
int string title_activity_available_operations 0x7f0b0037
int string title_activity_display_device_info 0x7f0b0025
int string title_activity_entry 0x7f0b0028
int string title_activity_log 0x7f0b0097
int string title_activity_log 0x7f0b0098
int string title_activity_notification 0x7f0b0034
int string title_activity_notify 0x7f0b0035
int string title_activity_register_successful 0x7f0b0027
@ -653,6 +653,7 @@ int string toast_message_enter_server_address 0x7f0b0045
int string toast_message_pin_change_failed 0x7f0b0044
int string toast_message_pin_change_success 0x7f0b0043
int string url 0x7f0b0026
int string yes 0x7f0b008e
int style AppBaseTheme 0x7f0c0059
int style AppTheme 0x7f0c005a
int style ButtonText 0x7f0c005f

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1015 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<lint>
</lint>

View File

@ -71,7 +71,7 @@
</LinearLayout>
<!-- Login Form Ends -->
<TextView android:id="@+id/txtVw"
<TextView android:id="@+id/severAddressLabel"
android:layout_width="wrap_content"
android:layout_below="@+id/linearLayout1"
android:layout_marginLeft="10dp"
@ -87,7 +87,7 @@
android:id="@+id/etServerIP"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/txtVw"
android:layout_below="@+id/severAddressLabel"
android:layout_centerHorizontal="true"
android:layout_marginLeft="22dp"
android:ems="10"
@ -106,17 +106,6 @@
android:layout_below="@+id/etServerIP"
android:text="Start Registration" />
<TextView
android:id="@+id/incompatibleError"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone"
android:layout_margin="10dp"
android:textColor="@android:color/background_dark"
android:gravity="center"
android:text="Welcome" />
</RelativeLayout>
</ScrollView>

View File

@ -124,6 +124,7 @@
<string name="dialog_pin_confirmation_end"> as your PIN code?</string>
<string name="dialog_init_confirmation">You have set your domain to </string>
<string name="dialog_init_middle">Your device is a </string>
<string name="dialog_init_device_type">Device type</string>
<string name="dialog_init_end"> device, are you sure you want to proceed ?</string>
<string name="dialog_init_end_general"> are you sure you want to proceed ?</string>
<string name="dialog_unregister">You are trying to unregister from EMM. Are you sure you want to proceed ?</string>
@ -150,8 +151,8 @@
<string name="info_label_imsi">IMSI:</string>
<string name="info_label_os">OS:</string>
<string name="info_label_rooted">Rooted:</string>
<string name="info_label_rooted_answer_yes">Yes</string>
<string name="info_label_rooted_answer_no">No</string>
<string name="yes">Yes</string>
<string name="no">No</string>
<!-- BUTTON TITLES -->
<string name="button_ok">OK</string>

View File

@ -1,18 +1,18 @@
/*
~ Copyright (c) 2014, WSO2 Inc. (http://wso2.com/) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
*/
/**
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.cdm.agent;
import android.os.Bundle;

View File

@ -1,18 +1,18 @@
/*
~ Copyright (c) 2014, WSO2 Inc. (http://wso2.com/) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
*/
/**
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.cdm.agent;
import java.util.HashMap;
@ -176,8 +176,8 @@ public class AlreadyRegisteredActivity extends SherlockActivity implements APIRe
AlertDialog.Builder builder = new AlertDialog.Builder(
AlreadyRegisteredActivity.this);
builder.setMessage(getResources().getString(R.string.dialog_unregister))
.setNegativeButton(getResources().getString(R.string.info_label_rooted_answer_yes), dialogClickListener)
.setPositiveButton(getResources().getString(R.string.info_label_rooted_answer_no), dialogClickListener).show();
.setNegativeButton(getResources().getString(R.string.yes), dialogClickListener)
.setPositiveButton(getResources().getString(R.string.no), dialogClickListener).show();
break;
case TAG_BTN_OPTIONS:
@ -418,7 +418,6 @@ public class AlreadyRegisteredActivity extends SherlockActivity implements APIRe
R.string.error_internal_server),
getResources().getString(R.string.button_ok),
null);
alertDialog.show();
} else {
Log.e(TAG, "The result is : " + result);
Log.e(TAG, "The responseStatus is : " + responseStatus);

View File

@ -17,6 +17,7 @@ package org.wso2.cdm.agent;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONException;
import org.json.JSONObject;
import org.wso2.cdm.agent.R;
@ -28,9 +29,9 @@ import org.wso2.cdm.agent.services.AlarmReceiver;
import org.wso2.cdm.agent.utils.CommonDialogUtils;
import org.wso2.cdm.agent.utils.CommonUtilities;
import org.wso2.cdm.agent.utils.HTTPConnectorUtils;
import org.wso2.cdm.agent.utils.Preference;
import org.wso2.cdm.agent.utils.ServerUtils;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.Dialog;
@ -64,6 +65,9 @@ import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.google.android.gcm.GCMRegistrar;
/**
* Activity that captures username, password and device ownership details
*/
public class AuthenticationActivity extends SherlockActivity implements APIAccessCallBack,
APIResultCallBack {
@ -73,19 +77,16 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
EditText username;
EditText txtDomain;
EditText password;
// TextView txtLoadingEULA;
RadioButton radioBYOD, radioCOPE;
String deviceType;
Context context;
String isAgreed = "";
String senderId = "";
String eula = "";
String usernameForRegister = "";
String usernameVal;
String passwordVal;
ProgressDialog progressDialog;
AlertDialog.Builder alertDialog;
private final int TAG_BTN_AUTHENTICATE = 0;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -94,10 +95,11 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
getSupportActionBar().setCustomView(R.layout.custom_sherlock_bar);
getSupportActionBar().setTitle(R.string.empty_app_title);
View homeIcon =
findViewById(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB
? android.R.id.home
: R.id.abs__home);
((View) homeIcon.getParent()).setVisibility(View.GONE);
(View) findViewById(
Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB
? android.R.id.home
: R.id.abs__home).getParent();
homeIcon.setVisibility(View.GONE);
context = AuthenticationActivity.this;
deviceType = getResources().getString(R.string.device_enroll_type_byod);
@ -110,8 +112,8 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
txtDomain.requestFocus();
authenticate = (Button) findViewById(R.id.btnRegister);
authenticate.setEnabled(false);
authenticate.setTag(TAG_BTN_AUTHENTICATE);
authenticate.setOnClickListener(onClickAuthenticate);
// change button color background till user enters a valid input
authenticate.setBackground(getResources().getDrawable(R.drawable.btn_grey));
authenticate.setTextColor(getResources().getColor(R.color.black));
@ -155,19 +157,37 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
public void onClick(View view) {
if (username.getText() != null && !username.getText().toString().trim().equals("") &&
password.getText() != null && !password.getText().toString().trim().equals("")) {
passwordVal = password.getText().toString().trim();
if (txtDomain.getText() != null &&
!txtDomain.getText().toString().trim().equals("")) {
usernameVal =
username.getText().toString().trim() + "@" +
txtDomain.getText().toString().trim();
} else {
usernameVal = username.getText().toString().trim();
}
if (radioBYOD.isChecked()) {
deviceType = getResources().getString(R.string.device_enroll_type_byod);
} else {
deviceType = getResources().getString(R.string.device_enroll_type_cope);
}
AlertDialog.Builder builder = new AlertDialog.Builder(AuthenticationActivity.this);
builder.setMessage(getResources().getString(R.string.dialog_init_middle) + " " +
deviceType + " " +
getResources().getString(R.string.dialog_init_end))
.setNegativeButton(getResources().getString(R.string.info_label_rooted_answer_yes),
dialogClickListener)
.setPositiveButton(getResources().getString(R.string.info_label_rooted_answer_no),
dialogClickListener).show();
alertDialog =
CommonDialogUtils.getAlertDialogWithTwoButtonAndTitle(context,
getResources().getString(R.string.dialog_init_device_type),
getResources().getString(R.string.dialog_init_middle) +
" " +
deviceType +
" " +
getResources().getString(R.string.dialog_init_end),
getResources().getString(R.string.yes),
getResources().getString(R.string.no),
dialogClickListener,
dialogClickListener);
alertDialog.show();
} else {
if (username.getText() != null && !username.getText().toString().trim().equals("")) {
Toast.makeText(context,
@ -183,6 +203,265 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
}
};
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
dialog.dismiss();
break;
case DialogInterface.BUTTON_NEGATIVE:
dialog.dismiss();
startAuthentication();
break;
}
}
};
/**
* Start authentication process.
*/
public void startAuthentication() {
Preference.put(context, getResources().getString(R.string.shared_pref_reg_type), deviceType);
// Check network connection availability before calling the API.
if (PhoneState.isNetworkAvailable(context)) {
authenticate();
} else {
CommonDialogUtils.stopProgressDialog(progressDialog);
CommonDialogUtils.showNetworkUnavailableMessage(context);
}
}
/**
* Communicating with the server to authenticate user.
*/
private void authenticate() {
AsyncTask<Void, Void, Map<String, String>> mLicenseTask =
new AsyncTask<Void, Void, Map<String, String>>() {
@Override
protected Map<String, String> doInBackground(Void... params) {
Map<String, String> response =
null;
Map<String, String> requestParametres =
new HashMap<String, String>();
requestParametres.put("username",
usernameVal);
requestParametres.put("password",
passwordVal);
response =
HTTPConnectorUtils.postData(context,
CommonUtilities.SERVER_URL +
CommonUtilities.SERVER_AUTHENTICATION_ENDPOINT,
requestParametres);
return response;
}
@Override
protected void onPreExecute() {
progressDialog =
ProgressDialog.show(context,
getResources().getString(R.string.dialog_authenticate),
getResources().getString(R.string.dialog_please_wait),
true);
};
@Override
protected void onPostExecute(Map<String, String> result) {
JSONObject response =
null;
if (result != null) {
String responseStatus =
result.get("status");
try {
if (responseStatus != null) {
if (responseStatus.equalsIgnoreCase(CommonUtilities.REQUEST_SUCCESSFUL)) {
response =
new JSONObject(
result.get("response"));
senderId =
response.getString("senderId");
getLicense();
} else if (responseStatus.equalsIgnoreCase(CommonUtilities.UNAUTHORIZED_ACCESS)) {
CommonDialogUtils.stopProgressDialog(progressDialog);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_authentication_error),
getResources().getString(R.string.error_authentication_failed),
getResources().getString(R.string.button_ok),
dialogClickListener);
} else if (responseStatus.trim()
.equals(CommonUtilities.INTERNAL_SERVER_ERROR)) {
CommonDialogUtils.stopProgressDialog(progressDialog);
showInternalServerErrorMessage();
} else {
Log.e(TAG,
"Status: " +
responseStatus);
showAuthCommonErrorMessage();
}
} else {
Log.e(TAG,
"The value of status is null in authenticate()");
showAuthCommonErrorMessage();
}
} catch (JSONException e) {
Log.e(TAG,
e.getMessage());
showAuthCommonErrorMessage();
}
} else {
Log.e(TAG,
"The result is null in authenticate()");
showAuthCommonErrorMessage();
}
}
};
mLicenseTask.execute();
}
/**
* Initialize get device license agreement. Check if the user has already
* agreed
* to license agreement
*/
private void getLicense() {
String isAgreed =
Preference.get(context,
getResources().getString(R.string.shared_pref_isagreed));
String type =
Preference.get(context,
getResources().getString(R.string.shared_pref_reg_type));
// No need to display license for COPE devices
if (type.trim().equals(getResources().getString(R.string.device_enroll_type_byod))) {
if (isAgreed == null) {
Map<String, String> requestParams = new HashMap<String, String>();
requestParams.put("domain", txtDomain.getText().toString().trim());
// Get License
OnCancelListener cancelListener = new OnCancelListener() {
@Override
public void onCancel(DialogInterface arg0) {
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.error_enrollment_failed_detail),
getResources().getString(R.string.error_enrollment_failed),
getResources().getString(R.string.button_ok),
null);
}
};
progressDialog =
CommonDialogUtils.showPrgressDialog(context,
getResources().getString(R.string.dialog_license_agreement),
getResources().getString(R.string.dialog_please_wait),
cancelListener);
// Check network connection availability before calling the API.
if (PhoneState.isNetworkAvailable(context)) {
getLicenseFromServer();
} else {
CommonDialogUtils.stopProgressDialog(progressDialog);
CommonDialogUtils.showNetworkUnavailableMessage(context);
}
} else {
loadPincodeAcitvity();
}
} else {
loadPincodeAcitvity();
}
}
/**
* Retriever license agreement details from the server
*/
private void getLicenseFromServer() {
AsyncTask<Void, Void, Map<String, String>> mLicenseTask =
new AsyncTask<Void, Void, Map<String, String>>() {
@Override
protected Map<String, String> doInBackground(Void... params) {
Map<String, String> response =
null;
response =
HTTPConnectorUtils.postData(context,
CommonUtilities.SERVER_URL +
CommonUtilities.LICENSE_ENDPOINT,
null);
return response;
}
@Override
protected void onPreExecute() {
};
@Override
protected void onPostExecute(Map<String, String> result) {
CommonDialogUtils.stopProgressDialog(progressDialog);
manipulateLicenseResponse(result);
}
};
mLicenseTask.execute();
}
/**
* Manipulates the License agreement response received from server.
*
* @param result
* the result of the license agreement request
*/
private void manipulateLicenseResponse(Map<String, String> result) {
String responseStatus;
CommonDialogUtils.stopProgressDialog(progressDialog);
String licenseAgreement = "";
if (result != null) {
responseStatus = result.get(CommonUtilities.STATUS_KEY);
if (responseStatus.equals(CommonUtilities.REQUEST_SUCCESSFUL)) {
licenseAgreement = result.get("response");
if (licenseAgreement != null) {
Preference.put(context, getResources().getString(R.string.shared_pref_eula),
licenseAgreement);
showAgreement(licenseAgreement, CommonUtilities.EULA_TITLE);
} else {
showErrorMessage(getResources().getString(R.string.error_enrollment_failed_detail),
getResources().getString(R.string.error_enrollment_failed));
}
} else if (responseStatus.equals(CommonUtilities.INTERNAL_SERVER_ERROR)) {
Log.e(TAG, "The result is : " + result);
showInternalServerErrorMessage();
} else {
showEnrollementFailedErrorMessage();
}
} else {
Log.e(TAG, "The result is null in manipulateLicenseResponse()");
showEnrollementFailedErrorMessage();
}
}
public void showErrorMessage(String message, String title) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(message);
@ -199,7 +478,7 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
alert.show();
}
public void showAlert(String message, String title) {
public void showAgreement(String message, String title) {
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom_terms_popup);
dialog.setTitle(CommonUtilities.EULA_TITLE);
@ -218,12 +497,8 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences mainPref =
AuthenticationActivity.this.getSharedPreferences(getResources().getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
Editor editor = mainPref.edit();
editor.putString(getResources().getString(R.string.shared_pref_isagreed), "1");
editor.commit();
Preference.put(context, getResources().getString(R.string.shared_pref_isagreed),
"1");
dialog.dismiss();
loadPincodeAcitvity();
}
@ -253,6 +528,13 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
dialog.show();
}
private void loadPincodeAcitvity() {
Intent intent = new Intent(AuthenticationActivity.this, PinCodeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra(getResources().getString(R.string.intent_extra_username), usernameVal);
startActivity(intent);
}
public void cancelEntry() {
SharedPreferences mainPref =
context.getSharedPreferences(getResources().getString(R.string.shared_pref_package),
@ -273,22 +555,6 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
}
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
dialog.dismiss();
break;
case DialogInterface.BUTTON_NEGATIVE:
dialog.dismiss();
startAuthentication();
break;
}
}
};
public void showAlertSingle(String message, String title) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(message);
@ -332,164 +598,6 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
alert.show();
}
/**
* Start Authentication.
*/
public void startAuthentication() {
final Context context = AuthenticationActivity.this;
SharedPreferences mainPref =
context.getSharedPreferences(getResources().getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
Editor editor = mainPref.edit();
editor.putString(getResources().getString(R.string.shared_pref_reg_type), deviceType);
editor.commit();
// Check network connection availability before calling the API.
if (PhoneState.isNetworkAvailable(context)) {
getOauthClientInfo();
} else {
CommonDialogUtils.stopProgressDialog(progressDialog);
CommonDialogUtils.showNetworkUnavailableMessage(AuthenticationActivity.this);
}
}
private void getOauthClientInfo() {
AsyncTask<Void, Void, Map<String, String>> mLicenseTask =
new AsyncTask<Void, Void, Map<String, String>>() {
@Override
protected Map<String, String> doInBackground(Void... params) {
Map<String, String> response =
null;
if (txtDomain.getText() != null &&
!txtDomain.getText()
.toString()
.trim()
.equals("")) {
response =
HTTPConnectorUtils.getClientKey(username.getText()
.toString()
.trim() +
"@" +
txtDomain.getText()
.toString()
.trim(),
password.getText()
.toString()
.trim(),
context);
} else {
response =
HTTPConnectorUtils.getClientKey(username.getText()
.toString()
.trim(),
password.getText()
.toString()
.trim(),
context);
}
return response;
}
@Override
protected void onPreExecute() {
progressDialog =
ProgressDialog.show(AuthenticationActivity.this,
getResources().getString(R.string.dialog_authenticate),
getResources().getString(R.string.dialog_please_wait),
true);
};
@Override
protected void onPostExecute(Map<String, String> result) {
JSONObject response =
null;
String clienKey = "";
String clientSecret = "";
if (result != null) {
String responseStatus =
result.get("status");
try {
if (responseStatus != null) {
if (responseStatus.equalsIgnoreCase(CommonUtilities.REQUEST_SUCCESSFUL)) {
response =
new JSONObject(
result.get("response"));
clienKey =
response.getString("clientkey");
clientSecret =
response.getString("clientsecret");
SharedPreferences mainPref =
AuthenticationActivity.this.getSharedPreferences(getResources().getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
Editor editor =
mainPref.edit();
editor.putString(getResources().getString(R.string.shared_pref_client_id),
clienKey);
editor.putString(getResources().getString(R.string.shared_pref_client_secret),
clientSecret);
editor.commit();
CommonUtilities.CLIENT_ID =
clienKey;
CommonUtilities.CLIENT_SECRET =
clientSecret;
initializeIDPLib(clienKey,
clientSecret);
} else if (responseStatus.equalsIgnoreCase(CommonUtilities.UNAUTHORIZED_ACCESS)) {
CommonDialogUtils.stopProgressDialog(progressDialog);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_authentication_error),
getResources().getString(R.string.error_authentication_failed),
getResources().getString(R.string.button_ok),
dialogClickListener);
alertDialog.show();
} else if (responseStatus.trim()
.equals(CommonUtilities.INTERNAL_SERVER_ERROR)) {
CommonDialogUtils.stopProgressDialog(progressDialog);
showInternalServerErrorMessage();
} else {
Log.e(TAG,
"Status: " +
responseStatus);
showAuthCommonErrorMessage();
}
} else {
Log.e(TAG,
"The value of status is null in getOauthClientInfo()");
showAuthCommonErrorMessage();
}
} catch (JSONException e) {
Log.e(TAG,
e.getMessage());
showAuthCommonErrorMessage();
}
} else {
Log.e(TAG,
"The result is null in getOauthClientInfo()");
showAuthCommonErrorMessage();
}
}
};
mLicenseTask.execute();
}
/**
* Initialize the Android IDP sdk by passing user credentials,client ID and
* client secret.
@ -523,7 +631,6 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
}
}
@SuppressLint("NewApi")
public void enableSubmitIfReady() {
boolean isReady = false;
@ -611,50 +718,138 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
}
}
/**
* Manipulates the License agreement response.
*
* @param result
* the result of the license agreement request
*/
private void manipulateLicenseResponse(Map<String, String> result) {
String responseStatus;
private void showEnrollementFailedErrorMessage() {
CommonDialogUtils.stopProgressDialog(progressDialog);
Log.e("get licence", "res");
String licenseAgreement = "";
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.error_enrollment_failed),
getResources().getString(R.string.error_enrollment_failed_detail),
getResources().getString(R.string.button_ok),
senderIdFailedClickListener);
}
if (result != null) {
responseStatus = result.get(CommonUtilities.STATUS_KEY);
if (responseStatus.equals(CommonUtilities.REQUEST_SUCCESSFUL)) {
licenseAgreement = result.get("response");
private void managePushNotification(String mode, float interval, Editor editor) {
if (mode.trim().toUpperCase().contains("LOCAL")) {
CommonUtilities.LOCAL_NOTIFICATIONS_ENABLED = true;
CommonUtilities.GCM_ENABLED = false;
String androidID = Secure.getString(context.getContentResolver(), Secure.ANDROID_ID);
// if (senderId == null || senderId.equals("")) {
editor.putString(getResources().getString(R.string.shared_pref_regId), androidID);
// }
editor.commit();
startLocalNotification(interval);
} else if (mode.trim().toUpperCase().contains("GCM")) {
CommonUtilities.LOCAL_NOTIFICATIONS_ENABLED = false;
CommonUtilities.GCM_ENABLED = true;
// editor.commit();
GCMRegistrar.register(context, CommonUtilities.SENDER_ID);
}
// if (senderId!=null && !senderId.equals("")) {
// CommonUtilities.GCM_ENABLED = true;
// GCMRegistrar.register(context, CommonUtilities.SENDER_ID);
// }
}
@Override
public void onAPIAccessRecive(String status) {
if (status != null) {
if (status.trim().equals(CommonUtilities.REQUEST_SUCCESSFUL)) {
SharedPreferences mainPref =
AuthenticationActivity.this.getSharedPreferences(getResources().getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
this.getSharedPreferences(getResources().getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
Editor editor = mainPref.edit();
editor.putString(getResources().getString(R.string.shared_pref_eula),
licenseAgreement);
editor.putString(getResources().getString(R.string.shared_pref_username),
usernameForRegister);
editor.commit();
if (licenseAgreement != null &&
(!licenseAgreement.equals(CommonUtilities.EMPTY_STRING) && !licenseAgreement.equals(CommonUtilities.NULL_STRING))) {
showAlert(licenseAgreement, CommonUtilities.EULA_TITLE);
Map<String, String> requestParams = new HashMap<String, String>();
requestParams.put("domain", txtDomain.getText().toString().trim());
// Check network connection availability before calling the API.
if (PhoneState.isNetworkAvailable(context)) {
// Call get sender ID API.
Log.e("sender id ", "call");
ServerUtils.callSecuredAPI(AuthenticationActivity.this,
CommonUtilities.SENDER_ID_ENDPOINT,
CommonUtilities.GET_METHOD, requestParams,
AuthenticationActivity.this,
CommonUtilities.SENDER_ID_REQUEST_CODE);
} else {
showErrorMessage(getResources().getString(R.string.error_enrollment_failed_detail),
getResources().getString(R.string.error_enrollment_failed));
CommonDialogUtils.stopProgressDialog(progressDialog);
CommonDialogUtils.showNetworkUnavailableMessage(AuthenticationActivity.this);
}
} else if (responseStatus.equals(CommonUtilities.INTERNAL_SERVER_ERROR)) {
Log.e(TAG, "The result is : " + result);
} else if (status.trim().equals(CommonUtilities.AUTHENTICATION_FAILED)) {
CommonDialogUtils.stopProgressDialog(progressDialog);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_authentication_error),
getResources().getString(R.string.error_authentication_failed),
getResources().getString(R.string.button_ok),
dialogClickListener);
} else if (status.trim().equals(CommonUtilities.INTERNAL_SERVER_ERROR)) {
showInternalServerErrorMessage();
} else {
showEnrollementFailedErrorMessage();
Log.e(TAG, "Status: " + status);
showAuthCommonErrorMessage();
}
} else {
Log.e(TAG, "The result is null in manipulateLicenseResponse()");
showEnrollementFailedErrorMessage();
Log.e(TAG, "The value of status is null in onAPIAccessRecive()");
showAuthCommonErrorMessage();
}
}
private void showInternalServerErrorMessage() {
CommonDialogUtils.stopProgressDialog(progressDialog);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_connection_error),
getResources().getString(R.string.error_internal_server),
getResources().getString(R.string.button_ok),
null);
}
/**
* Shows common error message for authentication.
*
*/
private void showAuthCommonErrorMessage() {
CommonDialogUtils.stopProgressDialog(progressDialog);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_authentication_error),
getResources().getString(R.string.error_for_all_unknown_authentication_failures),
getResources().getString(R.string.button_ok),
null);
}
private void startLocalNotification(Float interval) {
long firstTime = SystemClock.elapsedRealtime();
firstTime += 1 * 1000;
Intent downloader = new Intent(context, AlarmReceiver.class);
PendingIntent recurringDownload =
PendingIntent.getBroadcast(context,
0,
downloader,
PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarms = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Float seconds = interval;
if (interval < 1.0) {
alarms.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
seconds.intValue(), recurringDownload);
} else {
alarms.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
seconds.intValue(), recurringDownload);
}
}
/**
@ -718,217 +913,4 @@ public class AuthenticationActivity extends SherlockActivity implements APIAcces
}
private void showEnrollementFailedErrorMessage() {
CommonDialogUtils.stopProgressDialog(progressDialog);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.error_enrollment_failed),
getResources().getString(R.string.error_enrollment_failed_detail),
getResources().getString(R.string.button_ok),
senderIdFailedClickListener);
alertDialog.show();
}
private void managePushNotification(String mode, float interval, Editor editor) {
if (mode.trim().toUpperCase().contains("LOCAL")) {
CommonUtilities.LOCAL_NOTIFICATIONS_ENABLED = true;
CommonUtilities.GCM_ENABLED = false;
String androidID = Secure.getString(context.getContentResolver(), Secure.ANDROID_ID);
// if (senderId == null || senderId.equals("")) {
editor.putString(getResources().getString(R.string.shared_pref_regId), androidID);
// }
editor.commit();
startLocalNotification(interval);
} else if (mode.trim().toUpperCase().contains("GCM")) {
CommonUtilities.LOCAL_NOTIFICATIONS_ENABLED = false;
CommonUtilities.GCM_ENABLED = true;
// editor.commit();
GCMRegistrar.register(context, CommonUtilities.SENDER_ID);
}
// if (senderId!=null && !senderId.equals("")) {
// CommonUtilities.GCM_ENABLED = true;
// GCMRegistrar.register(context, CommonUtilities.SENDER_ID);
// }
}
/**
* Gets device License agreement.
*
*/
private void getLicense() {
Log.e("get licence", "get licence");
SharedPreferences mainPref =
context.getSharedPreferences(getResources().getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
isAgreed = mainPref.getString(getResources().getString(R.string.shared_pref_isagreed), "");
String eula = mainPref.getString(getResources().getString(R.string.shared_pref_eula), "");
String type =
mainPref.getString(getResources().getString(R.string.shared_pref_reg_type),
"");
if (type.trim().equals(getResources().getString(R.string.device_enroll_type_byod))) {
if (!isAgreed.equals("1")) {
Map<String, String> requestParams = new HashMap<String, String>();
requestParams.put("domain", txtDomain.getText().toString().trim());
// Get License
OnCancelListener cancelListener = new OnCancelListener() {
@Override
public void onCancel(DialogInterface arg0) {
showAlertSingle(getResources().getString(R.string.error_enrollment_failed_detail),
getResources().getString(R.string.error_enrollment_failed));
// finish();
}
};
progressDialog =
CommonDialogUtils.showPrgressDialog(AuthenticationActivity.this,
getResources().getString(R.string.dialog_license_agreement),
getResources().getString(R.string.dialog_please_wait),
cancelListener);
// Check network connection availability before calling the API.
if (PhoneState.isNetworkAvailable(context)) {
// Call device license agreement API.
ServerUtils.callSecuredAPI(AuthenticationActivity.this,
CommonUtilities.LICENSE_ENDPOINT,
CommonUtilities.GET_METHOD, requestParams,
AuthenticationActivity.this,
CommonUtilities.LICENSE_REQUEST_CODE);
} else {
CommonDialogUtils.stopProgressDialog(progressDialog);
CommonDialogUtils.showNetworkUnavailableMessage(AuthenticationActivity.this);
}
} else {
loadPincodeAcitvity();
}
} else {
loadPincodeAcitvity();
}
}
private void loadPincodeAcitvity() {
Intent intent = new Intent(AuthenticationActivity.this, PinCodeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
if (txtDomain.getText() != null && !txtDomain.getText().toString().trim().equals("")) {
intent.putExtra(getResources().getString(R.string.intent_extra_username),
username.getText().toString().trim() + "@" +
txtDomain.getText().toString().trim());
} else {
intent.putExtra(getResources().getString(R.string.intent_extra_username),
username.getText().toString().trim());
}
startActivity(intent);
}
@Override
public void onAPIAccessRecive(String status) {
if (status != null) {
if (status.trim().equals(CommonUtilities.REQUEST_SUCCESSFUL)) {
SharedPreferences mainPref =
this.getSharedPreferences(getResources().getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
Editor editor = mainPref.edit();
editor.putString(getResources().getString(R.string.shared_pref_username),
usernameForRegister);
editor.commit();
Map<String, String> requestParams = new HashMap<String, String>();
requestParams.put("domain", txtDomain.getText().toString().trim());
// Check network connection availability before calling the API.
if (PhoneState.isNetworkAvailable(context)) {
// Call get sender ID API.
Log.e("sender id ", "call");
ServerUtils.callSecuredAPI(AuthenticationActivity.this,
CommonUtilities.SENDER_ID_ENDPOINT,
CommonUtilities.GET_METHOD, requestParams,
AuthenticationActivity.this,
CommonUtilities.SENDER_ID_REQUEST_CODE);
} else {
CommonDialogUtils.stopProgressDialog(progressDialog);
CommonDialogUtils.showNetworkUnavailableMessage(AuthenticationActivity.this);
}
} else if (status.trim().equals(CommonUtilities.AUTHENTICATION_FAILED)) {
CommonDialogUtils.stopProgressDialog(progressDialog);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_authentication_error),
getResources().getString(R.string.error_authentication_failed),
getResources().getString(R.string.button_ok),
dialogClickListener);
alertDialog.show();
} else if (status.trim().equals(CommonUtilities.INTERNAL_SERVER_ERROR)) {
showInternalServerErrorMessage();
} else {
Log.e(TAG, "Status: " + status);
showAuthCommonErrorMessage();
}
} else {
Log.e(TAG, "The value of status is null in onAPIAccessRecive()");
showAuthCommonErrorMessage();
}
}
private void showInternalServerErrorMessage() {
CommonDialogUtils.stopProgressDialog(progressDialog);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_connection_error),
getResources().getString(R.string.error_internal_server),
getResources().getString(R.string.button_ok),
null);
alertDialog.show();
}
/**
* Shows common error message for authentication.
*
*/
private void showAuthCommonErrorMessage() {
CommonDialogUtils.stopProgressDialog(progressDialog);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_authentication_error),
getResources().getString(R.string.error_for_all_unknown_authentication_failures),
getResources().getString(R.string.button_ok),
null);
alertDialog.show();
}
private void startLocalNotification(Float interval) {
long firstTime = SystemClock.elapsedRealtime();
firstTime += 1 * 1000;
Intent downloader = new Intent(context, AlarmReceiver.class);
PendingIntent recurringDownload =
PendingIntent.getBroadcast(context,
0,
downloader,
PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarms = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Float seconds = interval;
if (interval < 1.0) {
alarms.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
seconds.intValue(), recurringDownload);
} else {
alarms.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
seconds.intValue(), recurringDownload);
}
}
}

View File

@ -1,18 +1,18 @@
/*
~ Copyright (c) 2014, WSO2 Inc. (http://wso2.com/) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
*/
/**
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.cdm.agent;
import android.app.Activity;

View File

@ -1,18 +1,18 @@
/*
~ Copyright (c) 2014, WSO2 Inc. (http://wso2.com/) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
*/
/**
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.cdm.agent;
import org.json.JSONArray;
@ -78,7 +78,7 @@ public class DisplayDeviceInfoActivity extends Activity {
sdk.setText(getResources().getString(R.string.info_label_imsi)+" "+operators);
}
os.setText(getResources().getString(R.string.info_label_os)+" "+deviceInfo.getOsVersion());
root.setText(getResources().getString(R.string.info_label_rooted)+" "+(deviceInfo.isRooted()?getResources().getString(R.string.info_label_rooted_answer_yes):getResources().getString(R.string.info_label_rooted_answer_no)));
root.setText(getResources().getString(R.string.info_label_rooted)+" "+(deviceInfo.isRooted()?getResources().getString(R.string.yes):getResources().getString(R.string.no)));
Bundle extras = getIntent().getExtras();
if (extras != null) {

View File

@ -1,18 +1,18 @@
/*
~ Copyright (c) 2014, WSO2 Inc. (http://wso2.com/) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
*/
/**
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.cdm.agent;

View File

@ -1,18 +1,18 @@
/*
~ Copyright (c) 2014, WSO2 Inc. (http://wso2.com/) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
*/
/**
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.cdm.agent;
import org.wso2.cdm.agent.R;

View File

@ -1,18 +1,18 @@
/*
~ Copyright (c) 2014, WSO2 Inc. (http://wso2.com/) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
*/
/**
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.cdm.agent;

View File

@ -1,18 +1,18 @@
/*
~ Copyright (c) 2014, WSO2 Inc. (http://wso2.com/) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
*/
/**
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.cdm.agent;
@ -35,7 +35,9 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import org.wso2.cdm.agent.R;
import org.wso2.cdm.agent.utils.Preference;
public class PinCodeActivity extends Activity {
private TextView lblPin;
@ -47,13 +49,14 @@ public class PinCodeActivity extends Activity {
private final int TAG_BTN_SET_PIN = 0;
private String FROM_ACTIVITY = null;
private String MAIN_ACTIVITY = null;
Context context;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pin_code);
context=PinCodeActivity.this;
Bundle extras = getIntent().getExtras();
if (extras != null) {
if (extras.containsKey(getResources().getString(R.string.intent_extra_username))) {
@ -73,7 +76,6 @@ public class PinCodeActivity extends Activity {
}
}
//initializeComponents();
lblPin = (TextView) findViewById(R.id.lblPin);
txtPin = (EditText) findViewById(R.id.txtPinCode);
txtOldPin = (EditText) findViewById(R.id.txtOldPinCode);
@ -146,22 +148,6 @@ public class PinCodeActivity extends Activity {
}
}
/**
* Initializes UI components.
*
*/
private void initializeComponents() {
lblPin = (TextView) findViewById(R.id.lblPin);
txtPin = (EditText) findViewById(R.id.txtPinCode);
txtOldPin = (EditText) findViewById(R.id.txtOldPinCode);
btnPin = (Button) findViewById(R.id.btnSetPin);
btnPin.setTag(TAG_BTN_SET_PIN);
btnPin.setOnClickListener(onClickListener_BUTTON_CLICKED);
btnPin.setEnabled(false);
btnPin.setBackground(getResources().getDrawable(R.drawable.btn_grey));
btnPin.setTextColor(getResources().getColor(R.color.black));
}
OnClickListener onClickListener_BUTTON_CLICKED = new OnClickListener() {
@Override
@ -177,8 +163,8 @@ public class PinCodeActivity extends Activity {
getResources().getString(R.string.dialog_pin_confirmation)
+ " " +txtPin.getText().toString() + " "
+ getResources().getString(R.string.dialog_pin_confirmation_end))
.setPositiveButton(getResources().getString(R.string.info_label_rooted_answer_yes), dialogClickListener)
.setNegativeButton(getResources().getString(R.string.info_label_rooted_answer_no), dialogClickListener).show();
.setPositiveButton(getResources().getString(R.string.yes), dialogClickListener)
.setNegativeButton(getResources().getString(R.string.no), dialogClickListener).show();
break;
default:
break;
@ -203,12 +189,7 @@ public class PinCodeActivity extends Activity {
};
public void savePin() {
SharedPreferences mainPref = this.getSharedPreferences(getResources().getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
Editor editor = mainPref.edit();
editor.putString(getResources().getString(R.string.shared_pref_pin), txtPin.getText().toString().trim());
editor.commit();
Preference.put(context, getResources().getString(R.string.shared_pref_pin), txtPin.getText().toString().trim());
if(FROM_ACTIVITY != null && (FROM_ACTIVITY.equals(AlreadyRegisteredActivity.class.getSimpleName()))){
Toast.makeText(getApplicationContext(), getResources().getString(R.string.toast_message_pin_change_success), Toast.LENGTH_SHORT).show();

View File

@ -1,19 +1,20 @@
/*
~ Copyright (c) 2014, WSO2 Inc. (http://wso2.com/) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
*/
/**
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.cdm.agent;
import java.util.HashMap;
import java.util.Map;
@ -23,108 +24,68 @@ import org.wso2.cdm.agent.R;
import org.wso2.cdm.agent.api.DeviceInfo;
import org.wso2.cdm.agent.api.PhoneState;
import org.wso2.cdm.agent.proxy.APIResultCallBack;
import org.wso2.cdm.agent.services.WSO2DeviceAdminReceiver;
import org.wso2.cdm.agent.utils.CommonDialogUtils;
import org.wso2.cdm.agent.utils.CommonUtilities;
import org.wso2.cdm.agent.utils.HTTPConnectorUtils;
import org.wso2.cdm.agent.utils.Preference;
import org.wso2.cdm.agent.utils.ServerUtils;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class RegistrationActivity extends Activity implements APIResultCallBack {
private String TAG = RegistrationActivity.class.getSimpleName();
String regId = "";
String username = "";
TextView mDisplay;
Context context;
boolean regState = false;
boolean successFlag = false;
Button btnEnroll = null;
RelativeLayout btnLayout = null;
ProgressDialog progressDialog;
AlertDialog.Builder alertDialog;
String regId = "";
String username = "";
Context context;
boolean regState = false;
ProgressDialog progressDialog;
AlertDialog.Builder alertDialog;
static final int ACTIVATION_REQUEST = 47; // identifies our request id
DevicePolicyManager devicePolicyManager;
ComponentName demoDeviceAdmin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
demoDeviceAdmin = new ComponentName(this, WSO2DeviceAdminReceiver.class);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
Bundle extras = getIntent().getExtras();
if (extras != null) {
if (extras.containsKey(getResources().getString(
R.string.intent_extra_username))) {
username = extras.getString(getResources().getString(
R.string.intent_extra_username));
}
}
SharedPreferences mainPref = this.getSharedPreferences( getResources().getString(R.string.shared_pref_package), Context.MODE_PRIVATE);
regId = mainPref.getString(getResources().getString(R.string.shared_pref_regId), "");
//Enroll automatically
final Context context = RegistrationActivity.this;
regId = Preference.get(context,getResources().getString(R.string.shared_pref_regId));
registerDevice();
btnEnroll = (Button)findViewById(R.id.btnEnroll);
btnLayout = (RelativeLayout)findViewById(R.id.enrollPanel);
//ImageView optionBtn = (ImageView) findViewById(R.id.option_button);
btnEnroll.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//registrateDevice();
}
});
}
}
private void registerDevice() {
progressDialog = CommonDialogUtils.showPrgressDialog(
RegistrationActivity.this,
getResources().getString(R.string.dialog_enrolling),
getResources().getString(R.string.dialog_please_wait), null);
progressDialog =
CommonDialogUtils.showPrgressDialog(RegistrationActivity.this,
getResources().getString(R.string.dialog_enrolling),
getResources().getString(R.string.dialog_please_wait),
null);
progressDialog.show();
DeviceInfo deviceInfo = new DeviceInfo(RegistrationActivity.this);
JSONObject jsObject = new JSONObject();
String osVersion = "";
SharedPreferences mainPref = RegistrationActivity.this
.getSharedPreferences(RegistrationActivity.this.getResources()
.getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
String type = mainPref.getString(RegistrationActivity.this
.getResources().getString(R.string.shared_pref_reg_type), "");
SharedPreferences mainPref =
RegistrationActivity.this.getSharedPreferences(RegistrationActivity.this.getResources()
.getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
String type =
mainPref.getString(RegistrationActivity.this.getResources()
.getString(R.string.shared_pref_reg_type),
"");
osVersion = deviceInfo.getOsVersion();
try {
@ -146,15 +107,15 @@ public class RegistrationActivity extends Activity implements APIResultCallBack
// Check network connection availability before calling the API.
if (PhoneState.isNetworkAvailable(context)) {
// Call device registration API.
ServerUtils.callSecuredAPI(RegistrationActivity.this,
CommonUtilities.REGISTER_ENDPOINT,
CommonUtilities.POST_METHOD, requestParams,
RegistrationActivity.this,
CommonUtilities.REGISTER_REQUEST_CODE);
sendDeviceDetails(requestParams);
// ServerUtils.callSecuredAPI(RegistrationActivity.this,
// CommonUtilities.REGISTER_ENDPOINT,
// CommonUtilities.POST_METHOD, requestParams,
// RegistrationActivity.this,
// CommonUtilities.REGISTER_REQUEST_CODE);
} else {
CommonDialogUtils.stopProgressDialog(progressDialog);
CommonDialogUtils
.showNetworkUnavailableMessage(RegistrationActivity.this);
CommonDialogUtils.showNetworkUnavailableMessage(RegistrationActivity.this);
}
} catch (JSONException e) {
@ -163,38 +124,116 @@ public class RegistrationActivity extends Activity implements APIResultCallBack
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
this.startActivity(i);
finish();
return true;
}
else if (keyCode == KeyEvent.KEYCODE_HOME) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
private void sendDeviceDetails(final Map<String, String> requestParams) {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return true;
AsyncTask<Void, Void, Map<String, String>> mLicenseTask =
new AsyncTask<Void, Void, Map<String, String>>() {
@Override
protected Map<String, String> doInBackground(Void... params) {
Map<String, String> response;
response =
HTTPConnectorUtils.postData(context,CommonUtilities.SERVER_URL+CommonUtilities.REGISTER_ENDPOINT,requestParams
);
return response;
}
@Override
protected void onPreExecute() {};
@Override
protected void onPostExecute(Map<String, String> result) {
CommonDialogUtils.stopProgressDialog(progressDialog);
manipulateDeviceDetails(result);
}
};
mLicenseTask.execute();
}
private void manipulateDeviceDetails(Map<String, String> result){
CommonDialogUtils.stopProgressDialog(progressDialog);
String responseStatus = "";
if (result != null) {
responseStatus = result.get(CommonUtilities.STATUS_KEY);
if (responseStatus.equals(CommonUtilities.REGISTERATION_SUCCESSFUL)) {
Intent intent =
new Intent(RegistrationActivity.this,
AlreadyRegisteredActivity.class);
intent.putExtra(getResources().getString(R.string.intent_extra_fresh_reg_flag),
true);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
} else if (responseStatus.equals(CommonUtilities.INTERNAL_SERVER_ERROR)) {
Log.e(TAG, "The value of status is : " + responseStatus);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_connection_error),
getResources().getString(R.string.error_internal_server),
getResources().getString(R.string.button_ok),
registrationFailedOKBtnClickListerner);
} else {
Log.e(TAG, "The value of status is : " + responseStatus);
Log.e(TAG, "The responseStatus is : " + responseStatus);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_registration_error),
getResources().getString(R.string.error_for_all_unknown_registration_failures),
getResources().getString(R.string.button_ok),
registrationFailedOKBtnClickListerner);
alertDialog.show();
}
} else {
Log.e(TAG, "The result is null in onReceiveAPIResult(). ");
Log.e(TAG, "The responseStatus is : " + responseStatus);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_registration_error),
getResources().getString(R.string.error_for_all_unknown_registration_failures),
getResources().getString(R.string.button_ok),
registrationFailedOKBtnClickListerner);
alertDialog.show();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
this.startActivity(i);
finish();
return true;
} else if (keyCode == KeyEvent.KEYCODE_HOME) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
DialogInterface.OnClickListener registrationFailedOKBtnClickListerner = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
loadAuthenticationErrorActivity();
}
};
DialogInterface.OnClickListener registrationFailedOKBtnClickListerner =
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0,
int arg1) {
loadAuthenticationErrorActivity();
}
};
@Override
public void onReceiveAPIResult(Map<String, String> result, int requestCode) {
@ -203,66 +242,44 @@ public class RegistrationActivity extends Activity implements APIResultCallBack
if (result != null) {
responseStatus = result.get(CommonUtilities.STATUS_KEY);
if (requestCode == CommonUtilities.REGISTER_REQUEST_CODE) {
if (responseStatus.equals(CommonUtilities.REGISTERATION_SUCCESSFUL)) {
Intent intent = new Intent(RegistrationActivity.this,AlreadyRegisteredActivity.class);
intent.putExtra(getResources().getString(R.string.intent_extra_fresh_reg_flag), true);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
//finish();
} else if (responseStatus
.equals(CommonUtilities.INTERNAL_SERVER_ERROR)) {
Intent intent =
new Intent(RegistrationActivity.this,
AlreadyRegisteredActivity.class);
intent.putExtra(getResources().getString(R.string.intent_extra_fresh_reg_flag),
true);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
// finish();
} else if (responseStatus.equals(CommonUtilities.INTERNAL_SERVER_ERROR)) {
Log.e(TAG, "The value of status is : " + responseStatus);
alertDialog = CommonDialogUtils
.getAlertDialogWithOneButtonAndTitle(
context,
getResources().getString(
R.string.title_head_connection_error),
getResources().getString(
R.string.error_internal_server),
getResources().getString(R.string.button_ok),
registrationFailedOKBtnClickListerner);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_connection_error),
getResources().getString(R.string.error_internal_server),
getResources().getString(R.string.button_ok),
registrationFailedOKBtnClickListerner);
alertDialog.show();
} else {
Log.e(TAG, "The value of status is : " + responseStatus);
} else {
Log.e(TAG, "The value of status is : " + responseStatus);
Log.e(TAG, "The responseStatus is : " + responseStatus);
alertDialog = CommonDialogUtils
.getAlertDialogWithOneButtonAndTitle(
context,
getResources().getString(
R.string.title_head_registration_error),
getResources().getString(
R.string.error_for_all_unknown_registration_failures),
getResources().getString(R.string.button_ok),
registrationFailedOKBtnClickListerner);
alertDialog.show();
}
} else {
Log.e(TAG, "The result is : " + result);
Log.e(TAG, "The responseStatus is : " + responseStatus);
alertDialog = CommonDialogUtils
.getAlertDialogWithOneButtonAndTitle(
context,
getResources().getString(
R.string.title_head_registration_error),
getResources().getString(
R.string.error_for_all_unknown_registration_failures),
getResources().getString(R.string.button_ok),
registrationFailedOKBtnClickListerner);
alertDialog.show();
}
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_registration_error),
getResources().getString(R.string.error_for_all_unknown_registration_failures),
getResources().getString(R.string.button_ok),
registrationFailedOKBtnClickListerner);
}
} else {
Log.e(TAG, "The result is null in onReceiveAPIResult(). ");
Log.e(TAG, "The responseStatus is : " + responseStatus);
alertDialog = CommonDialogUtils
.getAlertDialogWithOneButtonAndTitle(
context,
getResources().getString(
R.string.title_head_registration_error),
getResources().getString(
R.string.error_for_all_unknown_registration_failures),
getResources().getString(R.string.button_ok),
registrationFailedOKBtnClickListerner);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_registration_error),
getResources().getString(R.string.error_for_all_unknown_registration_failures),
getResources().getString(R.string.button_ok),
registrationFailedOKBtnClickListerner);
alertDialog.show();
}
@ -273,11 +290,11 @@ public class RegistrationActivity extends Activity implements APIResultCallBack
*
*/
private void loadAuthenticationErrorActivity() {
Intent intent = new Intent(RegistrationActivity.this,AuthenticationErrorActivity.class);
intent.putExtra(getResources().getString(R.string.intent_extra_from_activity), RegistrationActivity.class.getSimpleName());
Intent intent = new Intent(RegistrationActivity.this, AuthenticationErrorActivity.class);
intent.putExtra(getResources().getString(R.string.intent_extra_from_activity),
RegistrationActivity.class.getSimpleName());
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}

View File

@ -15,18 +15,6 @@
*/
package org.wso2.cdm.agent;
import java.util.HashMap;
import java.util.Map;
import org.wso2.cdm.agent.R;
import org.wso2.cdm.agent.api.DeviceInfo;
import org.wso2.cdm.agent.api.PhoneState;
import org.wso2.cdm.agent.proxy.APIResultCallBack;
import org.wso2.cdm.agent.proxy.Token;
import org.wso2.cdm.agent.proxy.TokenCallBack;
import org.wso2.cdm.agent.utils.CommonDialogUtils;
import org.wso2.cdm.agent.utils.CommonUtilities;
import org.wso2.cdm.agent.utils.Preference;
import org.wso2.cdm.agent.utils.ServerUtils;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
@ -35,34 +23,38 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class ServerDetails extends Activity implements APIResultCallBack, TokenCallBack {
import org.wso2.cdm.agent.api.DeviceInfo;
import org.wso2.cdm.agent.utils.CommonDialogUtils;
import org.wso2.cdm.agent.utils.CommonUtilities;
import org.wso2.cdm.agent.utils.Preference;
import org.wso2.cdm.agent.utils.Responce;
private String TAG = ServerDetails.class.getSimpleName();
/**
* This the the activity that is used to capture the server's host name.
*/
public class ServerDetails extends Activity {
TextView serverIP;
Button startRegistration;
String fromActivity;
Context context;
DialogInterface.OnClickListener dialogClickListener;
DeviceInfo info;
TextView incompatibleError;
String errorMessage = "";
TextView severAddressLabel;
String senderID = null;
boolean accessFlag = true;
ProgressDialog progressDialog;
String regId;
AlertDialog.Builder alertDialog;
boolean alreadyRegisteredActivityFlag = false;
boolean authenticationActivityFlag = false;
private String TAG = ServerDetails.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -70,50 +62,39 @@ public class ServerDetails extends Activity implements APIResultCallBack, TokenC
setContentView(R.layout.activity_settings);
context = ServerDetails.this;
info = new DeviceInfo(ServerDetails.this);
incompatibleError = (TextView) findViewById(R.id.incompatibleError);
serverIP = (TextView) findViewById(R.id.etServerIP);
severAddressLabel = (TextView) findViewById(R.id.severAddressLabel);
startRegistration = (Button) findViewById(R.id.startRegistration);
Bundle extras = getIntent().getExtras();
if (extras != null) {
if (extras.containsKey(getResources().getString(R.string.intent_extra_from_activity))) {
fromActivity =
extras.getString(getResources().getString(R.string.intent_extra_from_activity));
}
}
// Checking if the device meets minimum requirements
if (!info.isCompatible(context).getCode()) {
accessFlag = false;
incompatibleError.setText(errorMessage);
Responce compatibility = info.isCompatible();
if (!compatibility.getCode()) {
startRegistration.setVisibility(View.GONE);
severAddressLabel.setVisibility(View.GONE);
serverIP.setVisibility(View.GONE);
incompatibleError.setVisibility(View.VISIBLE);
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
errorMessage,
getResources().getString(R.string.error_authorization_failed),
getResources().getString(R.string.button_ok),
null);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context.getApplicationContext(),
getResources().getString(R.string.error_authorization_failed),
getResources().getString(compatibility.getDescriptionResourceID()),
getResources().getString(R.string.button_ok),
onRootedClickListner);
} else {
startRegistration.setVisibility(View.VISIBLE);
serverIP.setVisibility(View.VISIBLE);
incompatibleError.setVisibility(View.GONE);
String ipSaved =
Preference.get(context,
Preference.get(context.getApplicationContext(),
getResources().getString(R.string.shared_pref_ip));
regId = Preference.get(context, getResources().getString(R.string.shared_pref_regId));
regId = Preference.get(context.getApplicationContext().getApplicationContext(), getResources().getString(R.string.shared_pref_regId));
if (ipSaved != null) {
serverIP.setText(ipSaved);
CommonUtilities.setServerURL(ipSaved);
Intent intent = new Intent(ServerDetails.this, AuthenticationActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
startAuthenticationActivity();
} else {
serverIP.setText(CommonUtilities.SERVER_IP);
}
// on click handler for start registration
startRegistration.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@ -123,211 +104,246 @@ public class ServerDetails extends Activity implements APIResultCallBack, TokenC
serverIP.getText().toString() +
" " +
getResources().getString(R.string.dialog_init_end_general))
.setPositiveButton(getResources().getString(R.string.info_label_rooted_answer_yes),
.setPositiveButton(getResources().getString(R.string.yes),
dialogClickListener)
.setNegativeButton(getResources().getString(R.string.info_label_rooted_answer_no),
.setNegativeButton(getResources().getString(R.string.no),
dialogClickListener).show();
}
});
// String clientKey =
// Preference.get(context,
// getResources().getString(R.string.shared_pref_client_id));
// String clientSecret =
// Preference.get(context,
// getResources().getString(R.string.shared_pref_client_secret));
// if (!clientKey.equals("") && !clientSecret.equals("")) {
// CommonUtilities.CLIENT_ID = clientKey;
// CommonUtilities.CLIENT_SECRET = clientSecret;
// }
//
// try {
// if (fromActivity == null) {
// IdentityProxy.getInstance().getToken(this.getApplicationContext(),
// ServerDetails.this,
// CommonUtilities.CLIENT_ID,
// CommonUtilities.CLIENT_SECRET);
// }
//
// } catch (TimeoutException e) {
// e.printStackTrace();
// } catch (Exception e) {
// e.printStackTrace();
// }
dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
if (!serverIP.getText().toString().trim().equals("")) {
CommonUtilities.setServerURL(serverIP.getText().toString().trim());
Preference.put(context.getApplicationContext(),
getResources().getString(R.string.shared_pref_ip),
serverIP.getText().toString().trim());
startAuthenticationActivity();
} else {
Toast.makeText(context.getApplicationContext(),
getResources().getString(R.string.toast_message_enter_server_address),
Toast.LENGTH_LONG).show();
}
break;
case DialogInterface.BUTTON_NEGATIVE:
dialog.dismiss();
break;
}
}
};
}
Log.d(TAG, "Server details activity started");
}
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
DialogInterface.OnClickListener onRootedClickListner = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
if (!serverIP.getText().toString().trim().equals("")) {
CommonUtilities.setServerURL(serverIP.getText().toString().trim());
Preference.put(context, getResources().getString(R.string.shared_pref_ip),
serverIP.getText().toString().trim());
Intent intent =
new Intent(ServerDetails.this, AuthenticationActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
} else {
Toast.makeText(context,
getResources().getString(R.string.toast_message_enter_server_address),
Toast.LENGTH_LONG).show();
}
break;
case DialogInterface.BUTTON_NEGATIVE:
dialog.dismiss();
break;
}
finish();
}
};
@Override
public void onBackPressed() {
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
this.startActivity(i);
super.onBackPressed();
private void startAuthenticationActivity() {
Intent intent = new Intent(ServerDetails.this, AuthenticationActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && fromActivity != null &&
fromActivity.equals(AlreadyRegisteredActivity.class.getSimpleName())) {
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
this.startActivity(i);
this.finish();
return true;
} else if (keyCode == KeyEvent.KEYCODE_BACK && fromActivity != null &&
fromActivity.equals(AuthenticationActivity.class.getSimpleName())) {
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
return true;
} else if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
this.startActivity(i);
this.finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.settings, menu);
return true;
}
public void onReceiveAPIResult(Map<String, String> result, int requestCode) {
String responseStatus = CommonUtilities.EMPTY_STRING;
if (result != null) {
responseStatus = result.get(CommonUtilities.STATUS_KEY);
if (responseStatus.equals(CommonUtilities.REQUEST_SUCCESSFUL) &&
requestCode == CommonUtilities.IS_REGISTERED_REQUEST_CODE) {
Intent intent = null;
if (progressDialog != null) {
progressDialog.dismiss();
}
intent = new Intent(ServerDetails.this, AlreadyRegisteredActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
} else if (responseStatus.equals(CommonUtilities.INTERNAL_SERVER_ERROR)) {
Log.e(TAG, "The value of status is null in onAPIAccessRecive()");
String isRegistered =
CommonUtilities.getPref(context,
context.getResources()
.getString(R.string.shared_pref_registered));
if (isRegistered.equals("1")) {
Intent intent = null;
intent = new Intent(ServerDetails.this, AlreadyRegisteredActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
} else {
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_connection_error),
getResources().getString(R.string.error_internal_server),
getResources().getString(R.string.button_ok),
null);
Log.e("null", alertDialog.getClass().getPackage().toString());
alertDialog.show();
}
// ServerUtils.clearAppData(context);
} else {
Log.e(TAG, "The value of status is : " + responseStatus);
ServerUtils.clearAppData(context);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_registration_error),
getResources().getString(R.string.error_internal_server),
getResources().getString(R.string.button_ok),
null);
alertDialog.show();
}
} else {
Log.e(TAG, "The result is null in onReceiveAPIResult()");
ServerUtils.clearAppData(context);
alertDialog =
CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
getResources().getString(R.string.title_head_registration_error),
getResources().getString(R.string.error_for_all_unknown_registration_failures),
getResources().getString(R.string.button_ok),
null);
alertDialog.show();
}
}
@Override
public void onReceiveTokenResult(Token token, String status) {
if (token != null) {
if (regId != null && !regId.equals("")) {
// Check registration.
isRegistered();
progressDialog =
ProgressDialog.show(ServerDetails.this,
getResources().getString(R.string.dialog_sender_id),
getResources().getString(R.string.dialog_please_wait),
true);
}
}
}
/**
* Checks whether device is registered or NOT.
/*
* (non-Javadoc)
*
* @see android.app.Activity#onDestroy()
*/
private void isRegistered() {
Log.e("isReg", "isReg");
Map<String, String> requestParams = new HashMap<String, String>();
requestParams.put("regid", regId);
Log.e("regID", regId);
// Check network connection availability before calling the API.
if (PhoneState.isNetworkAvailable(context)) {
// Call isRegistered API.
ServerUtils.callSecuredAPI(ServerDetails.this, CommonUtilities.IS_REGISTERED_ENDPOINT,
CommonUtilities.POST_METHOD, requestParams,
ServerDetails.this,
CommonUtilities.IS_REGISTERED_REQUEST_CODE);
} else {
CommonDialogUtils.stopProgressDialog(progressDialog);
CommonDialogUtils.showNetworkUnavailableMessage(ServerDetails.this);
}
@Override
protected void onDestroy() {
//Avoiding memory leaks by destroying context object
context = null;
super.onDestroy();
}
// Old API manager communication code.
//
// Bundle extras = getIntent().getExtras();
//
// if (extras != null) {
// if
// (extras.containsKey(getResources().getString(R.string.intent_extra_from_activity)))
// {
// fromActivity =
// extras.getString(
// getResources().getString(R.string.intent_extra_from_activity));
// }
// }
//
//
// public class ServerDetails extends Activity implements APIResultCallBack,
// TokenCallBack {
// @Override
// public void onBackPressed() {
// Intent i = new Intent();
// i.setAction(Intent.ACTION_MAIN);
// i.addCategory(Intent.CATEGORY_HOME);
// this.startActivity(i);
// super.onBackPressed();
// }
//
// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// if (keyCode == KeyEvent.KEYCODE_BACK && fromActivity != null &&
// fromActivity.equals(AlreadyRegisteredActivity.class.getSimpleName())) {
// Intent i = new Intent();
// i.setAction(Intent.ACTION_MAIN);
// i.addCategory(Intent.CATEGORY_HOME);
// this.startActivity(i);
// this.finish();
// return true;
// } else if (keyCode == KeyEvent.KEYCODE_BACK && fromActivity != null &&
// fromActivity.equals(AuthenticationActivity.class.getSimpleName())) {
// int pid = android.os.Process.myPid();
// android.os.Process.killProcess(pid);
// return true;
// } else if (keyCode == KeyEvent.KEYCODE_BACK) {
// Intent i = new Intent();
// i.setAction(Intent.ACTION_MAIN);
// i.addCategory(Intent.CATEGORY_HOME);
// this.startActivity(i);
// this.finish();
// return true;
// }
// return super.onKeyDown(keyCode, event);
// }
//
// @Override
// public boolean onCreateOptionsMenu(Menu menu) {
// // Inflate the menu; this adds items to the action bar if it is present.
// getMenuInflater().inflate(R.menu.settings, menu);
// return true;
// }
//
// public void onReceiveAPIResult(Map<String, String> result, int
// requestCode) {
// String responseStatus = CommonUtilities.EMPTY_STRING;
// if (result != null) {
// responseStatus = result.get(CommonUtilities.STATUS_KEY);
//
// if (responseStatus.equals(CommonUtilities.REQUEST_SUCCESSFUL) &&
// requestCode == CommonUtilities.IS_REGISTERED_REQUEST_CODE) {
// Intent intent = null;
// if (progressDialog != null) {
// progressDialog.dismiss();
// }
// intent = new Intent(ServerDetails.this, AlreadyRegisteredActivity.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// startActivity(intent);
//
// } else if (responseStatus.equals(CommonUtilities.INTERNAL_SERVER_ERROR))
// {
// Log.e(TAG, "The value of status is null in onAPIAccessRecive()");
//
// String isRegistered =
// CommonUtilities.getPref(context,
// context.getResources()
// .getString(R.string.shared_pref_registered)
// );
// if (isRegistered.equals("1")) {
// Intent intent = null;
// intent = new Intent(ServerDetails.this, AlreadyRegisteredActivity.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// startActivity(intent);
// } else {
// alertDialog =
// CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
// getResources()
// .getString(
// R.string.title_head_connection_error),
// getResources()
// .getString(
// R.string.error_internal_server),
// getResources()
// .getString(
// R.string.button_ok),
// null);
// Log.e("null", alertDialog.getClass().getPackage().toString());
// alertDialog.show();
// }
// // ServerUtils.clearAppData(context);
// } else {
// Log.e(TAG, "The value of status is : " + responseStatus);
// ServerUtils.clearAppData(context);
//
// alertDialog =
// CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
// getResources()
// .getString(
// R.string.title_head_registration_error),
// getResources()
// .getString(
// R.string.error_internal_server),
// getResources()
// .getString(
// R.string.button_ok),
// null);
// alertDialog.show();
// }
// } else {
// Log.e(TAG, "The result is null in onReceiveAPIResult()");
// ServerUtils.clearAppData(context);
//
// alertDialog =
// CommonDialogUtils.getAlertDialogWithOneButtonAndTitle(context,
// getResources().getString(
// R.string.title_head_registration_error),
// getResources().getString(
// R.string.error_for_all_unknown_registration_failures),
// getResources().getString(
// R.string.button_ok),
// null);
// alertDialog.show();
// }
// }
//
// @Override
// public void onReceiveTokenResult(Token token, String status) {
// if (token != null) {
// if (regId != null && !regId.equals("")) {
// // Check registration.
// isRegistered();
//
// progressDialog =
// ProgressDialog.show(ServerDetails.this,
// getResources().getString(R.string.dialog_sender_id),
// getResources().getString(R.string.dialog_please_wait),
// true);
// }
// }
// }
//
// /**
// * Checks whether device is registered or NOT.
// */
// private void isRegistered() {
// Log.e("isReg", "isReg");
// Map<String, String> requestParams = new HashMap<String, String>();
// requestParams.put("regid", regId);
// Log.e("regID", regId);
//
// // Check network connection availability before calling the API.
// if (PhoneState.isNetworkAvailable(context)) {
// // Call isRegistered API.
// ServerUtils.callSecuredAPI(ServerDetails.this,
// CommonUtilities.IS_REGISTERED_ENDPOINT,
// CommonUtilities.POST_METHOD, requestParams,
// ServerDetails.this,
// CommonUtilities.IS_REGISTERED_REQUEST_CODE);
// } else {
// CommonDialogUtils.stopProgressDialog(progressDialog);
// CommonDialogUtils.showNetworkUnavailableMessage(ServerDetails.this);
// }
//
// }
}

View File

@ -23,7 +23,7 @@ import java.util.List;
import org.json.JSONArray;
import org.wso2.cdm.agent.R;
import org.wso2.cdm.agent.utils.CommonUtilities;
import org.wso2.cdm.agent.utils.Errors;
import org.wso2.cdm.agent.utils.Responce;
import android.content.Context;
import android.content.SharedPreferences;
@ -303,17 +303,17 @@ public class DeviceInfo {
return amount;
}
public Errors isCompatible(Context c) {
public Responce isCompatible() {
if (!(getSdkVersion() >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) &&
isRooted()) {
return Errors.INCOMPATIBLE;
return Responce.INCOMPATIBLE;
} else if (getSdkVersion() < android.os.Build.VERSION_CODES.FROYO) {
return Errors.INCOMPATIBLE;
return Responce.INCOMPATIBLE;
} else if (isRooted()) {
return Errors.INCOMPATIBLE;
return Responce.INCOMPATIBLE;
}
return Errors.COMPATIBLE;
return Responce.COMPATIBLE;
}
/*

View File

@ -1,18 +1,18 @@
/*
~ Copyright (c) 2014, WSO2 Inc. (http://wso2.com/) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
*/
/**
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.cdm.agent.utils;
import org.wso2.cdm.agent.R;
@ -124,7 +124,7 @@ public abstract class CommonDialogUtils {
builder.setTitle(title);
builder.setMessage(message)
.setPositiveButton(positiveBtnLabel, positiveClickListener);
builder.show();
return builder;
}

View File

@ -1,17 +1,17 @@
/*
~ Copyright (c) 2014, WSO2 Inc. (http://wso2.com/) All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
/**
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.cdm.agent.utils;
@ -37,12 +37,14 @@ public class CommonUtilities {
public static String SERVER_PROTOCOL = "http://";
public static String API_VERSION = "1.0.0";
public static String SERVER_APP_ENDPOINT = "/emm/api/";
public static String SERVER_APP_ENDPOINT = "/cdm-android-api/";
public static String SERVER_AUTHENTICATION_ENDPOINT="register/authenticate/device";
public static String LICENSE_ENDPOINT = "register/authenticate/device/license";
public static String REGISTER_ENDPOINT = "enrollment/authenticate/device/enroll";
public static String OAUTH_ENDPOINT = "/oauth2/token";
public static String SENDER_ID_ENDPOINT = "devices/sender_id/";
public static String IS_REGISTERED_ENDPOINT = "devices/isregistered/";
public static String LICENSE_ENDPOINT = "devices/license/";
public static String REGISTER_ENDPOINT = "devices/register/";
public static String UNREGISTER_ENDPOINT = "devices/unregister/";
public static String NOTIFICATION_ENDPOINT = "notifications/pendingOperations/";
@ -82,8 +84,6 @@ public class CommonUtilities {
public static void setServerURL(String serverIP) {
SERVER_IP = serverIP;
/*SERVER_URL = SERVER_PROTOCOL + sERVER_URL + ":" + SERVER_PORT
+ "/mdm/api/";*/
SERVER_URL = SERVER_PROTOCOL + serverIP + ":" + SERVER_PORT
+SERVER_APP_ENDPOINT;

View File

@ -24,7 +24,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.http.HeaderElement;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
@ -44,7 +43,6 @@ import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;
import org.wso2.cdm.agent.R;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.ParseException;
@ -56,39 +54,38 @@ public class HTTPConnectorUtils {
private static final int MAX_ATTEMPTS = 2;
public static Map<String, String> getClientKey(String username, String password, Context context) {
Map<String, String> params = new HashMap<String, String>();
Map<String, String> response = new HashMap<String, String>();
// public static Map<String, String> getClientKey(String username, String
// password, Context context) {
// Map<String, String> params = new HashMap<String, String>();
// Map<String, String> response = new HashMap<String, String>();
//
// params.put("username", username);
// params.put("password", password);
//
// try {
// response =
// postData("services/register/authenticate/device", params,
// context);
// } catch (Exception ex) {
// ex.printStackTrace();
// return response;
// }
// return response;
// }
params.put("username", username);
params.put("password", password);
try {
response =
sendWithTimeWait("services/register/authenticate/device", params, "POST",
context);
} catch (Exception ex) {
ex.printStackTrace();
return response;
}
return response;
}
public static Map<String, String> sendWithTimeWait(String epPostFix,
Map<String, String> params, String option,
Context context) {
public static Map<String, String> postData(Context context, String url,
Map<String, String> params) {
Map<String, String> response = null;
Map<String, String> responseFinal = null;
for (int i = 1; i <= MAX_ATTEMPTS; i++) {
Log.d(TAG, "Attempt #" + i + " to register");
Log.d(TAG, "Attempt #" + i + " to register " + url);
try {
response = postData(context, epPostFix, params);
response = postToServer(context, url, params);
if (response != null && !response.equals(null)) {
responseFinal = response;
}
String message = context.getString(R.string.server_registered);
Log.v("Check Reg Success", message.toString());
Log.d("Success", "Check Reg Success");
return responseFinal;
} catch (Exception e) {
@ -100,49 +97,34 @@ public class HTTPConnectorUtils {
return responseFinal;
}
}
String message = context.getString(R.string.server_register_error, MAX_ATTEMPTS);
return responseFinal;
}
public static Map<String, String> postData(Context context, String url,
Map<String, String> params) {
public static Map<String, String> postToServer(Context context, String url,
Map<String, String> params) {
// Create a new HttpClient and Post Header
Map<String, String> response_params = new HashMap<String, String>();
HttpClient httpclient = getCertifiedHttpClient(context);
String endpoint = CommonUtilities.SERVER_URL + url;
SharedPreferences mainPref = context.getSharedPreferences("com.mdm", Context.MODE_PRIVATE);
String ipSaved = mainPref.getString("ip", "");
if (ipSaved != null && ipSaved != "") {
endpoint =
CommonUtilities.SERVER_PROTOCOL + ipSaved + ":" +
CommonUtilities.SERVER_PORT + CommonUtilities.SERVER_APP_ENDPOINT +
url;
}
endpoint =
"http://10.100.5.70:9763/wso2appserver-cxf-samples/services/register/authenticate/device";
Log.v(TAG, ipSaved + "Posting '" + params.toString() + "' to " + endpoint);
StringBuilder bodyBuilder = new StringBuilder();
Iterator<Entry<String, String>> iterator = params.entrySet().iterator();
// constructs the POST body using the parameters
while (iterator.hasNext()) {
Entry<String, String> param = iterator.next();
bodyBuilder.append(param.getKey()).append('=').append(param.getValue());
if (iterator.hasNext()) {
bodyBuilder.append('&');
if (params != null) {
Iterator<Entry<String, String>> iterator = params.entrySet().iterator();
// constructs the POST body using the parameters
while (iterator.hasNext()) {
Entry<String, String> param = iterator.next();
bodyBuilder.append(param.getKey()).append('=').append(param.getValue());
if (iterator.hasNext()) {
bodyBuilder.append('&');
}
}
}
String body = bodyBuilder.toString();
Log.v(TAG, "Posting '" + body + "' to " + endpoint);
Log.v(TAG, "Posting '" + body + "' to " + url);
byte[] postData = body.getBytes();
HttpPost httppost = new HttpPost(endpoint);
HttpPost httppost = new HttpPost(url);
httppost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
httppost.setHeader("Accept", "*/*");
httppost.setHeader("User-Agent", "Mozilla/5.0 ( compatible ), Android");
@ -185,13 +167,12 @@ public class HTTPConnectorUtils {
new ThreadSafeClientConnManager(params, schemeRegistry);
client = new DefaultHttpClient(cm, params);
} else {
Log.e("", "out");
client = new DefaultHttpClient();
}
return client;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

View File

@ -1,29 +1,46 @@
package org.wso2.cdm.agent.utils;
import org.wso2.cdm.agent.R;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import org.wso2.cdm.agent.R;
/**
* Data retrieval and saving to shared preferences is done here.
*/
public class Preference {
public static String pack = "com.inosh.jwnotes";
public static String pack = "com.wso2.cdm.agent";
public static void put(Context c, String key, String value) {
/**
* Put data to shared preferences in private mode.
*
* @param context the context of activity which is requesting to put data
* @param key is used to identify the value.
* @param value is the actual value to be saved.
*/
public static void put(Context context, String key, String value) {
SharedPreferences mainPref =
c.getSharedPreferences(c.getResources()
.getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
context.getSharedPreferences(context.getResources()
.getString(R.string.shared_pref_package),
Context.MODE_PRIVATE
);
Editor editor = mainPref.edit();
editor.putString(key, value);
editor.commit();
}
public static String get(Context c, String key) {
/**
* Retrieve data from shared preferences in private mode.
*
* @param context the context of activity which is requesting to put data
* @param key is used to identify the value to to be retrieved.
*/
public static String get(Context context, String key) {
SharedPreferences mainPref =
c.getSharedPreferences(c.getResources()
.getString(R.string.shared_pref_package),
Context.MODE_PRIVATE);
context.getSharedPreferences(context.getResources()
.getString(R.string.shared_pref_package),
Context.MODE_PRIVATE
);
return mainPref.getString(key, null);
}

View File

@ -21,7 +21,7 @@ import org.wso2.cdm.agent.R;
* Describes the errors and their relevant error messages.
* In order to internationalize the message is the res
*/
public enum Errors {
public enum Responce {
INCOMPATIBLE(false, R.string.device_not_compatible_error),
INCOMPATIBLE_OS(false, R.string.device_not_compatible_error_os),
COMPATIBLE(true,R.string.device_not_compatible_error_os);
@ -29,7 +29,7 @@ public enum Errors {
private final boolean code;
private final int descriptionResourceID;
private Errors(boolean code, int description) {
private Responce(boolean code, int description) {
this.code = code;
this.descriptionResourceID = description;
}