package com.lgq.rssreader; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import com.lgq.rssreader.core.Config; import com.lgq.rssreader.core.ReaderApp; import com.lgq.rssreader.dal.DBHelper; import com.lgq.rssreader.entity.Channel; import com.lgq.rssreader.entity.Profile; import com.lgq.rssreader.parser.FeedlyParser; import com.lgq.rssreader.task.DownloadService; import com.lgq.rssreader.task.DownloadTask; import com.lgq.rssreader.task.ImageTask; import com.lgq.rssreader.task.ProfileTask; import com.lgq.rssreader.utils.FileHelper; import com.lgq.rssreader.utils.NetHelper; import com.lgq.rssreader.utils.NotificationHelper; import android.app.AlertDialog; import android.app.Dialog; import android.app.ProgressDialog; import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.ServiceConnection; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.IBinder; import android.support.v4.app.Fragment; import android.support.v4.app.NotificationCompat; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageView; import android.widget.SeekBar; import android.widget.TextView; import android.widget.Toast; import android.widget.SeekBar.OnSeekBarChangeListener; public class MenuFragment extends Fragment implements OnClickListener{ MainActivity mainActivity; View account, download, settings,search,add,logout; TextView nickName,accountText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_left_menu, container, false); account = view.findViewById(R.id.account); account.setOnClickListener(this); download = view.findViewById(R.id.download); download.setOnClickListener(this); settings = view.findViewById(R.id.settings); settings.setOnClickListener(this); search = view.findViewById(R.id.search); search.setOnClickListener(this); logout = view.findViewById(R.id.logout); logout.setOnClickListener(this); add = view.findViewById(R.id.add); add.setOnClickListener(this); nickName = (TextView)view.findViewById(R.id.nickNameTextView); accountText = (TextView)view.findViewById(R.id.accountText); final ImageView head = (ImageView)view.findViewById(R.id.headImageView); final Profile p = ReaderApp.getProfile(); if(p != null){ //new ImageTask((ImageView)view.findViewById(R.id.headImageView)).execute(p.Picture); if(p.LocalPicture != null && p.LocalPicture.length() != 0){ File SDFile = android.os.Environment.getExternalStorageDirectory(); Bitmap bm = BitmapFactory.decodeFile(SDFile.getAbsolutePath() + p.LocalPicture); if(bm != null) head.setImageBitmap(bm); else new ProfileTask(head).execute(p); }else{ //new ImageTask(head).execute(p.Picture); new ProfileTask(head).execute(p); } accountText.setText(p.Account); nickName.setText(p.FamilyName + p.GivenName); } return view; } //set the selected status private void setSelected(int id){ account.setSelected(false); download.setSelected(false); settings.setSelected(false); search.setSelected(false); add.setSelected(false); logout.setSelected(false); mainActivity = (MainActivity)getActivity(); if (id == R.id.account) { account.setSelected(true); } else if (id == R.id.download) { mainActivity.getSlidingMenu().toggle(); final Context mContext = getActivity(); Channel c = new Channel(); c.Id = ""; NotificationHelper.getDownloadDialog(mContext, c, true).show(); download.setSelected(true); } else if (id == R.id.settings) { settings.setSelected(true); Intent i = new Intent(getActivity(),SettingActivity.class); startActivity(i); } else if (id == R.id.search) { mainActivity.getSlidingMenu().toggle(); final EditText et = new EditText(getActivity()); new AlertDialog.Builder(getActivity()).setTitle( getActivity().getResources().getString(R.string.main_search)) .setIcon(android.R.drawable.ic_dialog_info).setView(et) .setPositiveButton( getActivity().getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { Intent i = new Intent(getActivity(),SearchActivity.class); i.putExtra(FeedListFragment.SEARCHTITLE, et.getText().toString()); startActivity(i); } }).setNegativeButton( getActivity().getResources().getString(R.string.no), null).show(); search.setSelected(true); } else if (id == R.id.add) { mainActivity.getSlidingMenu().toggle(); final EditText et = new EditText(getActivity()); new AlertDialog.Builder(getActivity()).setTitle( getActivity().getResources().getString(R.string.main_add)) .setIcon(android.R.drawable.ic_dialog_info).setView(et) .setPositiveButton( getActivity().getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { Intent i = new Intent(getActivity(),SubscribeActivity.class); Bundle b = new Bundle(); b.putString(FeedListFragment.SUBSCRIBETITLE, et.getText().toString()); i.putExtras(b); startActivity(i); } }).setNegativeButton( getActivity().getResources().getString(R.string.no), null).show(); } else if (id == R.id.logout) { //final TextView et = new TextView(getActivity()); //et.setText(R.string.logout_msg); new AlertDialog.Builder(getActivity()) .setTitle(getActivity().getResources().getString(R.string.logout_msg)) .setIcon(android.R.drawable.ic_dialog_info) //.setView(et) .setPositiveButton( getActivity().getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { final ProgressDialog mProgressDialog = new ProgressDialog(getActivity()); mProgressDialog.setTitle(getActivity().getResources().getString(R.string.logout)); mProgressDialog.setMessage(getActivity().getResources().getString(R.string.logouting_msg)); mProgressDialog.setCancelable(false); mProgressDialog.setCanceledOnTouchOutside(false); mProgressDialog.show(); new Thread(){ @Override public void run(){ //step 1 : delete sd card file String sDStateString = android.os.Environment.getExternalStorageState(); if (sDStateString.equals(android.os.Environment.MEDIA_MOUNTED)) { try { File SDFile = android.os.Environment.getExternalStorageDirectory(); FileHelper.DeleteFile(SDFile.getAbsolutePath() + Config.ROOT_LOCATION); } catch(Exception e){ e.printStackTrace(); } } //step 2: delete sqlite db DBHelper.DatabaseHelper.ClearData(mainActivity); //step 3: delete preference ReaderApp.getPreferences().edit().clear().commit(); Intent intent = mainActivity.getIntent(); mainActivity.finish(); startActivity(intent); } }.start(); } }).setNegativeButton( getActivity().getResources().getString(R.string.no), null).show(); } else { } } @Override public void onClick(View v) { setSelected(v.getId()); } private void switchFragment(Fragment fragment) { if (getActivity() == null) return; MainActivity ra = (MainActivity) getActivity(); ra.switchContent(fragment); } }