Пример #1
0
  @Override
  public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {

    if (key.equals(SettingActivity.ENABLE_FETCH_MSG)) {
      boolean value = sharedPreferences.getBoolean(key, false);
      if (value) {
        AppNewMsgAlarm.startAlarm(getActivity(), false);
      } else {
        AppNewMsgAlarm.stopAlarm(getActivity(), true);
      }
    }

    if (key.equals(SettingActivity.FREQUENCY)) {

      AppNewMsgAlarm.startAlarm(getActivity(), false);
      buildSummary();
    }

    if (key.equals(SettingActivity.FONT_SIZE)) {
      String value = sharedPreferences.getString(key, "15");
      GlobalContext.getInstance().setFontSize(Integer.valueOf(value));
    }

    if (key.equals(SettingActivity.SOUND)) {
      boolean value = sharedPreferences.getBoolean(key, true);
      GlobalContext.getInstance().setEnableSound(value);
    }

    if (key.equals(SettingActivity.AUTO_REFRESH)) {
      boolean value = sharedPreferences.getBoolean(key, false);
      GlobalContext.getInstance().setEnableAutoRefresh(value);
    }
  }
  @Override
  public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

    switch (item.getItemId()) {
      case R.id.menu_at:
        Intent intent = new Intent(getActivity(), WriteWeiboActivity.class);
        intent.putExtra("token", GlobalContext.getInstance().getSpecialToken());
        intent.putExtra("content", "@" + bean.getScreen_name());
        intent.putExtra("account", GlobalContext.getInstance().getAccountBean());
        getActivity().startActivity(intent);
        listView.clearChoices();
        mode.finish();
        break;
      case R.id.menu_follow:
        if (followOrUnfollowTask == null
            || followOrUnfollowTask.getStatus() == MyAsyncTask.Status.FINISHED) {
          followOrUnfollowTask = new FollowTask();
          followOrUnfollowTask.executeOnExecutor(MyAsyncTask.THREAD_POOL_EXECUTOR);
        }
        listView.clearChoices();
        mode.finish();
        break;
      case R.id.menu_unfollow:
        if (followOrUnfollowTask == null
            || followOrUnfollowTask.getStatus() == MyAsyncTask.Status.FINISHED) {
          followOrUnfollowTask = new UnFollowTask();
          followOrUnfollowTask.executeOnExecutor(MyAsyncTask.THREAD_POOL_EXECUTOR);
        }
        listView.clearChoices();
        mode.finish();
        break;
    }

    return true;
  }
    @Override
    protected void onPostExecute(GroupListBean groupListBean) {
      GroupDBManager.getInstance()
          .updateGroupInfo(groupListBean, GlobalContext.getInstance().getCurrentAccountId());
      GlobalContext.getInstance().setGroup(groupListBean);

      super.onPostExecute(groupListBean);
    }
Пример #4
0
 private int getRecentNavIndex() {
   List<GroupBean> list = new ArrayList<GroupBean>();
   if (GlobalContext.getInstance().getGroup() != null) {
     list = GlobalContext.getInstance().getGroup().getLists();
   } else {
     list = new ArrayList<GroupBean>();
   }
   return getIndexFromGroupId(currentGroupId, list);
 }
Пример #5
0
  public void buildActionBarNav() {
    if ((((MainTimeLineActivity) getActivity()).getMenuFragment()).getCurrentIndex()
        != LeftMenuFragment.HOME_INDEX) {
      return;
    }
    ((MainTimeLineActivity) getActivity()).setCurrentFragment(this);

    getActivity().getActionBar().setDisplayShowTitleEnabled(false);
    getActivity().getActionBar().setDisplayHomeAsUpEnabled(Utility.isDevicePort());
    getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    List<GroupBean> list = new ArrayList<GroupBean>();
    if (GlobalContext.getInstance().getGroup() != null) {
      list = GlobalContext.getInstance().getGroup().getLists();
    } else {
      list = new ArrayList<GroupBean>();
    }

    navAdapter = new FriendsTimeLineListNavAdapter(getActivity(), buildListNavData(list));
    final List<GroupBean> finalList = list;
    getActivity()
        .getActionBar()
        .setListNavigationCallbacks(
            navAdapter,
            new ActionBar.OnNavigationListener() {
              @Override
              public boolean onNavigationItemSelected(int which, long itemId) {

                if (!Utility.isTaskStopped(dbTask)) {
                  return true;
                }

                String groupId = getGroupIdFromIndex(which, finalList);

                if (!groupId.equals(currentGroupId)) {

                  switchFriendsGroup(groupId);
                }
                return true;
              }
            });
    currentGroupId =
        FriendsTimeLineDBTask.getRecentGroupId(GlobalContext.getInstance().getCurrentAccountId());

    if (Utility.isDevicePort()) {
      ((MainTimeLineActivity) getActivity()).setTitle("");
      getActivity().getActionBar().setIcon(R.drawable.ic_menu_home);
    } else {
      ((MainTimeLineActivity) getActivity()).setTitle("");
      getActivity().getActionBar().setIcon(R.drawable.ic_launcher);
    }

    if (getActivity().getActionBar().getNavigationMode() == ActionBar.NAVIGATION_MODE_LIST
        && isVisible()) {
      getActivity().getActionBar().setSelectedNavigationItem(getRecentNavIndex());
    }
  }
Пример #6
0
 public void saveNavigationPositionToDB() {
   int navPosition = getMenuFragment().getCurrentIndex() * 10;
   ActionBar actionBar = getActionBar();
   int second = 0;
   if (actionBar.getNavigationMode() != ActionBar.NAVIGATION_MODE_STANDARD) {
     second = actionBar.getSelectedNavigationIndex();
   }
   int result = navPosition + second;
   GlobalContext.getInstance().getAccountBean().setNavigationPosition(result);
   AccountDBTask.updateNavigationPosition(GlobalContext.getInstance().getAccountBean(), result);
 }
Пример #7
0
 public UserInfoFragment getMyProfileFragment() {
   UserInfoFragment fragment =
       ((UserInfoFragment)
           getSupportFragmentManager().findFragmentByTag(UserInfoFragment.class.getName()));
   if (fragment == null) {
     fragment =
         UserInfoFragment.newInstance(
             GlobalContext.getInstance().getAccountBean().getInfo(),
             GlobalContext.getInstance().getSpecialToken());
   }
   return fragment;
 }
Пример #8
0
 @Override
 protected void listViewItemClick(AdapterView parent, View view, int position, long id) {
   startActivityForResult(
       BrowserWeiboMsgActivity.newIntent(
           getList().getItem(position), GlobalContext.getInstance().getSpecialToken()),
       MainTimeLineActivity.REQUEST_CODE_UPDATE_FRIENDS_TIMELINE_COMMENT_REPOST_COUNT);
 }
Пример #9
0
  public static Bitmap getMiddlePictureInBrowserMSGActivity(
      String url, FileDownloaderHttpHelper.DownloadListener downloadListener) {

    try {

      String filePath = FileManager.getFilePathFromUrl(url, FileLocationMethod.picture_bmiddle);

      File file = new File(filePath);

      if (!file.exists() && !SettingUtility.isEnablePic()) {
        return null;
      }

      if (!file.exists()) {
        getBitmapFromNetWork(url, filePath, downloadListener);
      }
      file = new File(filePath);
      if (file.exists()) {
        DisplayMetrics displayMetrics = GlobalContext.getInstance().getDisplayMetrics();
        return decodeBitmapFromSDCard(filePath, displayMetrics.widthPixels, 900);
      }
      return null;
    } catch (OutOfMemoryError ignored) {
      return null;
    }
  }
Пример #10
0
  public static Bitmap getMiddlePictureInBrowserMSGActivity(
      String url, FileDownloaderHttpHelper.DownloadListener downloadListener) {

    String absoluteFilePath =
        FileManager.getFilePathFromUrl(url, FileLocationMethod.picture_bmiddle);

    File file = new File(absoluteFilePath);

    if (!file.exists() && !SettingUtility.isEnablePic()) {
      return null;
    }

    if (!file.exists()) {
      getBitmapFromNetWork(url, absoluteFilePath, downloadListener);
    }
    file = new File(absoluteFilePath);
    if (file.exists()) {
      DisplayMetrics displayMetrics = GlobalContext.getInstance().getDisplayMetrics();

      Bitmap bitmap =
          decodeBitmapFromSDCard(
              absoluteFilePath, displayMetrics.widthPixels, displayMetrics.heightPixels);
      return bitmap;
    }
    return null;
  }
Пример #11
0
  private String readResult(HttpURLConnection urlConnection) throws WeiboException {
    InputStream is = null;
    BufferedReader buffer = null;
    GlobalContext globalContext = GlobalContext.getInstance();
    String errorStr = globalContext.getString(R.string.timeout);
    globalContext = null;
    try {
      is = urlConnection.getInputStream();

      String content_encode = urlConnection.getContentEncoding();

      if (null != content_encode && !"".equals(content_encode) && content_encode.equals("gzip")) {
        is = new GZIPInputStream(is);
      }

      buffer = new BufferedReader(new InputStreamReader(is));
      StringBuilder strBuilder = new StringBuilder();
      String line;
      while ((line = buffer.readLine()) != null) {
        strBuilder.append(line);
      }
      AppLogger.d("result=" + strBuilder.toString());
      return strBuilder.toString();
    } catch (IOException e) {
      e.printStackTrace();
      throw new WeiboException(errorStr, e);
    } finally {
      Utility.closeSilently(is);
      Utility.closeSilently(buffer);
      urlConnection.disconnect();
    }
  }
Пример #12
0
  public String doGet(String urlStr, Map<String, String> param) throws WeiboException {
    GlobalContext globalContext = GlobalContext.getInstance();
    String errorStr = globalContext.getString(R.string.timeout);
    globalContext = null;
    InputStream is = null;
    try {

      StringBuilder urlBuilder = new StringBuilder(urlStr);
      urlBuilder.append("?").append(Utility.encodeUrl(param));
      URL url = new URL(urlBuilder.toString());
      AppLogger.d("get request" + url);
      Proxy proxy = getProxy();
      HttpURLConnection urlConnection;
      if (proxy != null) urlConnection = (HttpURLConnection) url.openConnection(proxy);
      else urlConnection = (HttpURLConnection) url.openConnection();

      urlConnection.setRequestMethod("GET");
      urlConnection.setDoOutput(false);
      urlConnection.setConnectTimeout(CONNECT_TIMEOUT);
      urlConnection.setReadTimeout(READ_TIMEOUT);
      urlConnection.setRequestProperty("Connection", "Keep-Alive");
      urlConnection.setRequestProperty("Charset", "UTF-8");
      urlConnection.setRequestProperty("Accept-Encoding", "gzip, deflate");

      urlConnection.connect();

      return handleResponse(urlConnection);
    } catch (IOException e) {
      e.printStackTrace();
      throw new WeiboException(errorStr, e);
    }
  }
Пример #13
0
  public String doPost(String urlAddress, Map<String, String> param) throws WeiboException {
    GlobalContext globalContext = GlobalContext.getInstance();
    String errorStr = globalContext.getString(R.string.timeout);
    globalContext = null;
    try {
      URL url = new URL(urlAddress);
      Proxy proxy = getProxy();
      HttpURLConnection uRLConnection;
      if (proxy != null) uRLConnection = (HttpURLConnection) url.openConnection(proxy);
      else uRLConnection = (HttpURLConnection) url.openConnection();

      uRLConnection.setDoInput(true);
      uRLConnection.setDoOutput(true);
      uRLConnection.setRequestMethod("POST");
      uRLConnection.setUseCaches(false);
      uRLConnection.setConnectTimeout(CONNECT_TIMEOUT);
      uRLConnection.setReadTimeout(READ_TIMEOUT);
      uRLConnection.setInstanceFollowRedirects(false);
      uRLConnection.setRequestProperty("Connection", "Keep-Alive");
      uRLConnection.setRequestProperty("Charset", "UTF-8");
      uRLConnection.setRequestProperty("Accept-Encoding", "gzip, deflate");
      uRLConnection.connect();

      DataOutputStream out = new DataOutputStream(uRLConnection.getOutputStream());
      out.write(Utility.encodeUrl(param).getBytes());
      out.flush();
      out.close();
      return handleResponse(uRLConnection);
    } catch (IOException e) {
      e.printStackTrace();
      throw new WeiboException(errorStr, e);
    }
  }
 @Override
 protected DMListBean getDoInBackgroundNewData() throws WeiboException {
   page = 1;
   return new DMConversationDao(GlobalContext.getInstance().getSpecialToken())
       .setUid(userBean.getId())
       .setPage(page)
       .getConversationList();
 }
 @Override
 protected DMListBean getDoInBackgroundOldData() throws WeiboException {
   DMConversationDao dao =
       new DMConversationDao(GlobalContext.getInstance().getSpecialToken())
           .setUid(userBean.getId())
           .setPage(page + 1);
   DMListBean result = dao.getConversationList();
   return result;
 }
Пример #16
0
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getActionBar().setTitle(R.string.comments);
    getActionBar().setSubtitle(GlobalContext.getInstance().getCurrentAccountName());

    token = getIntent().getStringExtra("token");
    if (TextUtils.isEmpty(token)) token = GlobalContext.getInstance().getSpecialToken();

    msg = (MessageBean) getIntent().getSerializableExtra("msg");
    if (msg == null) {
      commentDraftBean = (CommentDraftBean) getIntent().getSerializableExtra("draft");
      msg = commentDraftBean.getMessageBean();
      getEditTextView().setText(commentDraftBean.getContent());
    }

    getEditTextView().setHint("@" + msg.getUser().getScreen_name() + ":" + msg.getText());
  }
Пример #17
0
 @Override
 protected List<MessageReCmtCountBean> doInBackground(Void... params) {
   try {
     return new TimeLineReCmtCountDao(GlobalContext.getInstance().getSpecialToken(), msgIds)
         .get();
   } catch (WeiboException e) {
     cancel(true);
   }
   return null;
 }
Пример #18
0
 @Override
 public void saveToDraft() {
   if (!TextUtils.isEmpty(getEditTextView().getText().toString())) {
     DraftDBManager.getInstance()
         .insertComment(
             getEditTextView().getText().toString(),
             msg,
             GlobalContext.getInstance().getCurrentAccountId());
   }
   finish();
 }
Пример #19
0
 private void savePositionToDB() {
   TimeLinePosition position = positionCache.get(currentGroupId);
   if (position == null) {
     savePositionToPositionsCache();
     position = positionCache.get(currentGroupId);
   }
   position.newMsgIds = newMsgTipBar.getValues();
   final String groupId = currentGroupId;
   FriendsTimeLineDBTask.asyncUpdatePosition(
       position, GlobalContext.getInstance().getCurrentAccountId(), groupId);
 }
Пример #20
0
 @Override
 public void onResume() {
   super.onResume();
   addRefresh();
   GlobalContext.getInstance().registerForAccountChangeListener(this);
   if (SettingUtility.getEnableAutoRefresh()) {
     this.newMsgTipBar.setType(TopTipBar.Type.ALWAYS);
   } else {
     this.newMsgTipBar.setType(TopTipBar.Type.AUTO);
   }
 }
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
   Intent intent;
   switch (item.getItemId()) {
     case R.id.name:
       intent = new Intent(getActivity(), MyInfoActivity.class);
       intent.putExtra("token", token);
       intent.putExtra("user", userBean);
       intent.putExtra("account", GlobalContext.getInstance().getAccountBean());
       startActivity(intent);
       break;
     case R.id.write_weibo:
       intent = new Intent(getActivity(), WriteWeiboActivity.class);
       intent.putExtra("token", token);
       intent.putExtra("account", GlobalContext.getInstance().getAccountBean());
       startActivity(intent);
       break;
   }
   return true;
 }
Пример #22
0
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (savedInstanceState != null) {
      accountBean = savedInstanceState.getParcelable("account");
    } else {
      Intent intent = getIntent();
      accountBean = intent.getParcelableExtra(BundleArgsConstants.ACCOUNT_EXTRA);
    }

    if (accountBean == null) {
      accountBean = GlobalContext.getInstance().getAccountBean();
    }

    GlobalContext.getInstance().setGroup(null);
    GlobalContext.getInstance().setAccountBean(accountBean);
    SettingUtility.setDefaultAccountId(accountBean.getUid());

    buildInterface(savedInstanceState);
  }
Пример #23
0
  private void initFragments() {
    Fragment friend = getFriendsTimeLineFragment();
    Fragment mentions = getMentionsTimeLineFragment();
    Fragment comments = getCommentsTimeLineFragment();

    Fragment fav = getFavFragment();
    Fragment myself = getMyProfileFragment();

    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
    if (!friend.isAdded()) {
      fragmentTransaction.add(R.id.menu_right_fl, friend, FriendsTimeLineFragment.class.getName());
      fragmentTransaction.hide(friend);
    }
    if (!mentions.isAdded()) {
      fragmentTransaction.add(R.id.menu_right_fl, mentions, MentionsTimeLine.class.getName());
      fragmentTransaction.hide(mentions);
    }
    if (!comments.isAdded()) {
      fragmentTransaction.add(R.id.menu_right_fl, comments, CommentsTimeLine.class.getName());
      fragmentTransaction.hide(comments);
    }

    if (!fav.isAdded()) {
      fragmentTransaction.add(R.id.menu_right_fl, fav, MyFavListFragment.class.getName());
      fragmentTransaction.hide(fav);
    }

    if (!myself.isAdded()) {
      fragmentTransaction.add(R.id.menu_right_fl, myself, UserInfoFragment.class.getName());
      fragmentTransaction.hide(myself);
    }

    if (GlobalContext.getInstance().getAccountBean().isBlack_magic()) {
      Fragment search = getSearchFragment();
      Fragment dm = getDMFragment();

      if (!search.isAdded()) {
        fragmentTransaction.add(
            R.id.menu_right_fl, search, SearchMainParentFragment.class.getName());
        fragmentTransaction.hide(search);
      }

      if (!dm.isAdded()) {
        fragmentTransaction.add(R.id.menu_right_fl, dm, DMUserListFragment.class.getName());
        fragmentTransaction.hide(dm);
      }
    }

    if (!fragmentTransaction.isEmpty()) {
      fragmentTransaction.commit();
      getSupportFragmentManager().executePendingTransactions();
    }
  }
Пример #24
0
    @Override
    protected Void doInBackground(Void... params) {
      Map<String, String> emotions = GlobalContext.getInstance().getEmotions();
      List<String> index = new ArrayList<String>();
      index.addAll(emotions.keySet());
      for (String str : index) {
        if (!isCancelled()) {
          String url = emotions.get(str);
          String path = FileManager.getFileAbsolutePathFromUrl(url, FileLocationMethod.emotion);
          String name = new File(path).getName();
          AssetManager assetManager = GlobalContext.getInstance().getAssets();
          InputStream inputStream;
          try {
            inputStream = assetManager.open(name);
            Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
            emotionsPic.put(str, bitmap);
          } catch (IOException ignored) {

          }
        }
      }
      return null;
    }
Пример #25
0
  private HttpResponse getHttpResponse(HttpRequestBase httpRequest, HttpContext localContext)
      throws WeiboException {
    HttpResponse response = null;
    try {
      if (localContext != null) {
        response = httpClient.execute(httpRequest, localContext);
      } else {
        response = httpClient.execute(httpRequest);
      }
    } catch (ConnectTimeoutException e) {

      AppLogger.e(e.getMessage());
      throw new WeiboException(GlobalContext.getInstance().getString(R.string.timeout), e);

    } catch (ClientProtocolException e) {
      AppLogger.e(e.getMessage());
      throw new WeiboException(GlobalContext.getInstance().getString(R.string.timeout), e);

    } catch (IOException e) {
      AppLogger.e(e.getMessage());
      throw new WeiboException(GlobalContext.getInstance().getString(R.string.timeout), e);
    }
    return response;
  }
    @Override
    protected UserBean doInBackground(Void... params) {

      FriendshipsDao dao = new FriendshipsDao(GlobalContext.getInstance().getSpecialToken());
      if (!TextUtils.isEmpty(bean.getId())) {
        dao.setUid(bean.getId());
      } else {
        dao.setScreen_name(bean.getScreen_name());
      }
      try {
        return dao.followIt();
      } catch (WeiboException e) {
        AppLogger.e(e.getError());
        this.e = e;
        cancel(true);
        return null;
      }
    }
 @Override
 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
   super.onCreateOptionsMenu(menu, inflater);
   inflater.inflate(R.menu.actionbar_menu_friendstimelinefragment, menu);
   name = menu.findItem(R.id.group_name);
   if (selectedId.equals("0")) {
     name.setTitle(userBean.getScreen_name());
   }
   if (selectedId.equals("1")) {
     name.setTitle(getString(R.string.bilateral));
   } else {
     for (GroupBean b : GlobalContext.getInstance().getGroup().getLists()) {
       if (b.getIdstr().equals(selectedId)) {
         name.setTitle(b.getName());
         return;
       }
     }
   }
 }
Пример #28
0
  private String handleResponse(HttpURLConnection httpURLConnection) throws WeiboException {
    GlobalContext globalContext = GlobalContext.getInstance();
    String errorStr = globalContext.getString(R.string.timeout);
    globalContext = null;
    int status = 0;
    try {
      status = httpURLConnection.getResponseCode();
    } catch (IOException e) {
      e.printStackTrace();
      httpURLConnection.disconnect();
      throw new WeiboException(errorStr, e);
    }

    if (status != HttpURLConnection.HTTP_OK) {
      return handleError(httpURLConnection);
    }

    return readResult(httpURLConnection);
  }
Пример #29
0
  @Override
  protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    AccountBean intentAccountBean = intent.getParcelableExtra(BundleArgsConstants.ACCOUNT_EXTRA);
    if (intentAccountBean == null) {
      return;
    }

    if (accountBean.equals(intentAccountBean)) {
      accountBean = intentAccountBean;
      GlobalContext.getInstance().setAccountBean(accountBean);
      setIntent(intent);
    } else {
      finish();
      overridePendingTransition(0, 0);
      startActivity(intent);
      overridePendingTransition(0, 0);
    }
  }
Пример #30
0
  @Override
  public void run() {

    Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

    AppLogger.d("clear cache task start");

    if (Utility.isWifi(GlobalContext.getInstance())) {

      List<String> pathList = FileManager.getCachePath();

      for (String path : pathList) {
        if (!TextUtils.isEmpty(path)) handleDir(new File(path));
      }

      AppLogger.d("clear cache task stop");
    } else {
      AppLogger.d("this device dont have wifi network, clear cache task stop");
    }
  }