/** * Copyright 2010-present Facebook. * * 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 com.facebook.android; import java.util.Vector; import android.app.Activity; import android.app.Dialog; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; public class PermissionsDialog extends Dialog { // private final static int TAB_HEIGHT = 50; // // private Button mGetPermissions; // private TextView mPermissionDetails; private Activity activity; // private ListView userPermissionsList, friendPermissionsList, extendedPermissionsList; // // private BaseAdapter userPermissionsAdapter, friendPermissionsAdapter, // extendedPermissionAdapter; protected Vector<String> reqPermVector; String[] user_permissions = { "user_about_me", "user_activities", "user_birthday", "user_checkins", "user_education_history", "user_events", "user_groups", "user_hometown", "user_interests", "user_likes", "user_location", "user_notes", "user_online_presence", "user_photos", "user_photo_video_tags", "user_relationships", "user_relationship_details", "user_religion_politics", "user_status", "user_videos", "user_website", "user_work_history" }; String[] friend_permissions = { "friends_about_me", "friends_activities", "friends_birthday", "friends_checkins", "friends_education_history", "friends_events", "friends_groups", "friends_hometown", "friends_interests", "friends_likes", "friends_location", "friends_notes", "friends_online_presence", "friends_photos", "friends_photo_video_tags", "friends_relationships", "friends_relationship_details", "friends_religion_politics", "friends_status", "friends_videos", "friends_website", "friends_work_history" }; String[] extended_permissions = { "ads_management", "create_event", "create_note", "email", "export_stream", "manage_friendlists", "manage_groups", "manage_pages", "offline_access", "publish_actions", "photo_upload", "publish_checkins", "publish_stream", "read_friendlists", "read_insights", "read_mailbox", "read_requests", "read_stream", "rsvp_event", "share_item", "status_update", "sms", "video_upload", "xmpp_login" }; public PermissionsDialog(Activity activity) { super(activity); this.activity = activity; // setTitle(activity.getString(R.string.permissions_request)); // reqPermVector = new Vector<String>(); } /* * Layout the permission dialog */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.permissions_list); // LayoutParams params = getWindow().getAttributes(); // params.width = LayoutParams.FILL_PARENT; // params.height = LayoutParams.FILL_PARENT; // getWindow().setAttributes((android.view.WindowManager.LayoutParams) params); // // mPermissionDetails = (TextView) findViewById(R.id.permission_detail); // mPermissionDetails.setMovementMethod(LinkMovementMethod.getInstance()); // // userPermissionsList = (ListView) findViewById(R.id.user_permissions_list); // friendPermissionsList = (ListView) findViewById(R.id.friend_permissions_list); // extendedPermissionsList = (ListView) findViewById(R.id.extended_permissions_list); // // userPermissionsAdapter = new PermissionsListAdapter(user_permissions); // userPermissionsList.setAdapter(userPermissionsAdapter); // // friendPermissionsAdapter = new PermissionsListAdapter(friend_permissions); // friendPermissionsList.setAdapter(friendPermissionsAdapter); // // extendedPermissionAdapter = new PermissionsListAdapter(extended_permissions); // extendedPermissionsList.setAdapter(extendedPermissionAdapter); // // TabHost tabHost = (TabHost) findViewById(R.id.tabHost); // tabHost.setup(); // // TabSpec spec1 = tabHost.newTabSpec("Tab 1"); // spec1.setIndicator(activity.getString(R.string.user)); // spec1.setContent(R.id.user_permissions_list); // // TabSpec spec2 = tabHost.newTabSpec("Tab 2"); // spec2.setIndicator(activity.getString(R.string.friend)); // spec2.setContent(R.id.friend_permissions_list); // // TabSpec spec3 = tabHost.newTabSpec("Tab 3"); // spec3.setIndicator(activity.getString(R.string.extended)); // spec3.setContent(R.id.extended_permissions_list); // // tabHost.addTab(spec1); // tabHost.addTab(spec2); // tabHost.addTab(spec3); // tabHost.setCurrentTab(0); // tabHost.getTabWidget().getChildAt(0).getLayoutParams().height = TAB_HEIGHT; // tabHost.getTabWidget().getChildAt(1).getLayoutParams().height = TAB_HEIGHT; // tabHost.getTabWidget().getChildAt(2).getLayoutParams().height = TAB_HEIGHT; // // mGetPermissions = (Button) findViewById(R.id.get_permissions_button); // // mGetPermissions.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // /* // * Source Tag: perms_tag Call authorize to get the new // * permissions // */ // if (reqPermVector.isEmpty() && Utility.mFacebook.isSessionValid()) { // Toast.makeText(activity.getBaseContext(), "No Permissions selected.", // Toast.LENGTH_SHORT).show(); // PermissionsDialog.this.dismiss(); // } else { // String[] permissions = reqPermVector.toArray(new String[0]); // Utility.mFacebook.authorize(activity, permissions, new LoginDialogListener()); // } // } // }); } /** * Definition of the list adapter */ public class PermissionsListAdapter extends BaseAdapter { String[] permissions; boolean[] isChecked; public PermissionsListAdapter(String[] permissions) { this.permissions = permissions; this.isChecked = new boolean[permissions.length]; LayoutInflater.from(activity.getBaseContext()); } @Override public int getCount() { return permissions.length; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { View hView = convertView; // CheckBox checkbox; // // if (hView == null) { // hView = mInflater.inflate(R.layout.permission_item, null); // checkbox = (CheckBox) hView.findViewById(R.id.permission_checkbox); // hView.setTag(checkbox); // } else { // checkbox = (CheckBox) hView.getTag(); // } // checkbox.setText(this.permissions[position]); // checkbox.setId(position); // if (Utility.currentPermissions.containsKey(this.permissions[position]) // && Utility.currentPermissions.get(this.permissions[position]).equals("1")) { // checkbox.setTextColor(Color.GREEN); // checkbox.setChecked(true); // checkbox.setEnabled(false); // checkbox.setOnCheckedChangeListener(null); // } else { // checkbox.setTextColor(Color.WHITE); // checkbox.setChecked(this.isChecked[position]); // checkbox.setEnabled(true); // checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() { // @Override // public void onCheckedChanged(CompoundButton button, boolean checked) { // isChecked[button.getId()] = checked; // if (checked) { // reqPermVector.add(button.getText().toString()); // } else if (reqPermVector.contains(button.getText())) { // reqPermVector.remove(button.getText()); // } // } // }); // } return hView; } } }