Android Open Source - retrowatch Rss Fragment






From Project

Back to project page retrowatch.

License

The source code is released under:

Apache License

If you think the Android project retrowatch listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2014 The Retro Watch - Open source smart watch project
 *//  w ww .ja  v  a2 s .c  o  m
 * 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.hardcopy.retrowatch;

import java.util.ArrayList;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;

import com.hardcopy.retrowatch.contents.objects.CPObject;
import com.hardcopy.retrowatch.utils.Constants;
import com.hardcopy.retrowatch.utils.Logs;

public class RssFragment extends Fragment implements OnClickListener, IAdapterListener {
  private static final String TAG = "RssFragment";
  
  private Context mContext = null;
  private IFragmentListener mFragmentListener;
  
  private ListView mListRss = null;
  private RssAdapter mRssAdapter = null;
  
  private TextView mBtnRssSearch = null;
  private EditText mEditUrl = null;
  private EditText mEditTitle = null;
  private Button mButtonDelete = null;
  private Button mButtonAdd = null;
  private Button mButtonNew = null;
  
  private CPObject mCurrentRssObject = null;
  
  
  public RssFragment(Context c, IFragmentListener l) {
    mContext = c;
    mFragmentListener = l;
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    Logs.d(TAG, "# RssFragment - onCreateView()");
    
    View rootView = inflater.inflate(R.layout.fragment_rss, container, false);
    
    mListRss = (ListView) rootView.findViewById(R.id.list_rss);
    if(mRssAdapter == null)
      mRssAdapter = new RssAdapter(mContext, R.layout.list_rss, null, this);
    mListRss.setAdapter(mRssAdapter);
    
    mBtnRssSearch = (Button) rootView.findViewById(R.id.btn_find_more);
    mBtnRssSearch.setOnClickListener(this);
    mEditTitle = (EditText) rootView.findViewById(R.id.edit_title);
    mEditUrl = (EditText) rootView.findViewById(R.id.edit_url);
    
    mButtonDelete = (Button) rootView.findViewById(R.id.btn_delete);
    mButtonDelete.setOnClickListener(this);
    mButtonAdd = (Button) rootView.findViewById(R.id.btn_add);
    mButtonAdd.setOnClickListener(this);
    mButtonNew = (Button) rootView.findViewById(R.id.btn_new);
    mButtonNew.setOnClickListener(this);

    // Make new RSS object and set data on widget
    makeDefaultRssObject();
    
    return rootView;
  }
  
  @Override
  public void onStart() {
    super.onStart();
  }
  
  @Override
  public void onResume() {
    super.onResume();
    // Request RSS list
    requestRssUpdate();
  }
  
  @Override 
  public void onClick(View v) {
    switch(v.getId()) {
    case R.id.btn_delete:
      if(mCurrentRssObject == null || mCurrentRssObject.mId < 0)
        break;
      mFragmentListener.OnFragmentCallback(IFragmentListener.CALLBACK_REQUEST_DELETE_RSS, 
          0, 0, null, null, (Object)mCurrentRssObject);
      
      // Close soft keyboard
      InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
      imm.hideSoftInputFromWindow(mEditUrl.getWindowToken(), 0);
      imm.hideSoftInputFromWindow(mEditTitle.getWindowToken(), 0);
      break;
      
    case R.id.btn_add:
      if(mCurrentRssObject != null) {
        String url = mEditUrl.getText().toString();
        String title = mEditTitle.getText().toString();
        
        // Check input fields
        if(url == null || url.isEmpty() || title == null || title.isEmpty()) {
          Toast.makeText(mContext, 
              mContext.getString(R.string.warning_type_rss_field), 
              Toast.LENGTH_SHORT).show();
        } else {
          mCurrentRssObject.mName = title;
          mCurrentRssObject.mURL = url;
          
          if(mButtonAdd.getText().equals(mContext.getString(R.string.command_add))) {
            // Add RSS
            mFragmentListener.OnFragmentCallback(IFragmentListener.CALLBACK_REQUEST_ADD_RSS, 0, 0, null, null, 
                mCurrentRssObject);
            // makeDefaultRssObject();    // Make new RSS object and set data on widget
          } else {
            // Edit RSS
            mFragmentListener.OnFragmentCallback(IFragmentListener.CALLBACK_REQUEST_EDIT_RSS, 0, 0, null, null, 
                mCurrentRssObject);
            // makeDefaultRssObject();    // Make new RSS object and set data on widget
          }
        }
        
        // Close soft keyboard
        InputMethodManager imm2 = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm2.hideSoftInputFromWindow(mEditTitle.getWindowToken(), 0);
        imm2.hideSoftInputFromWindow(mEditUrl.getWindowToken(), 0);
      }
      break;
      
    case R.id.btn_new:
      makeDefaultRssObject();    // Make new RSS object and set data on widget
      
      // Close soft keyboard
      InputMethodManager imm3 = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
      imm3.hideSoftInputFromWindow(mEditTitle.getWindowToken(), 0);
      imm3.hideSoftInputFromWindow(mEditUrl.getWindowToken(), 0);
      break;
      
    case R.id.btn_find_more:
      Intent i2 = new Intent(mContext, RetroWebViewActivity.class);
      i2.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      i2.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
      Uri u = Uri.parse(Constants.PROJECT_FEED_SEARCH_URL); 
      i2.setData(u);
      startActivity(i2);
      break;
      
    }  // End of switch()
  }  // End of onClick()
  
  @Override
  public void OnAdapterCallback(int msgType, int arg0, int arg1, String arg2, String arg3, Object arg4) {
    switch(msgType) {
    case IAdapterListener.CALLBACK_RSS_SELECTED:
      if(arg4 != null) {
        CPObject cp = (CPObject) arg4;
        selectRss(cp);
      }
      break;
      
    default:
      break;
    }
  }
  
  
  
  private void makeDefaultRssObject() {
    mCurrentRssObject = new CPObject();
    setRssInfoOnWidget(mCurrentRssObject);
    
    mButtonAdd.setEnabled(true);
    mButtonAdd.setText(mContext.getString(R.string.command_add));
    mButtonDelete.setEnabled(false);
  }
  
  private void setRssInfoOnWidget(CPObject cpo) {
    if(mEditTitle == null || mEditUrl == null)
      return;
    
    if(cpo.mName != null)
      mEditTitle.setText(cpo.mName);
    else
      mEditTitle.setText("");
    if(cpo.mURL != null)
      mEditUrl.setText(cpo.mURL);
    else
      mEditUrl.setText("");
  }
  
  private void requestRssUpdate() {
    mRssAdapter.deleteRssAll();
    mFragmentListener.OnFragmentCallback(IFragmentListener.CALLBACK_REQUEST_RSS, 0, 0, null, null, null);
  }
  
  
  
  public void selectRss(CPObject cpo) {
    cpo.copyTo(mCurrentRssObject);
    setRssInfoOnWidget(mCurrentRssObject);
    
    mButtonAdd.setText(mContext.getString(R.string.command_edit));
    mButtonDelete.setEnabled(true);
  }
  
  public void addRss(CPObject object) {
    if(object != null) {
      mRssAdapter.addRss(object);
      mRssAdapter.notifyDataSetChanged();
      makeDefaultRssObject();    // Make new RSS object and set data on widget
    }
  }
  
  public void addRssAll(ArrayList<CPObject> objList) {
    if(objList != null) {
      mRssAdapter.addRssAll(objList);
      mRssAdapter.notifyDataSetChanged();
    }
  }
  
  public void editRss(CPObject object) {
    if(object != null) {
      mRssAdapter.editRss(object);
      mRssAdapter.notifyDataSetChanged();
      if(object.mId == mCurrentRssObject.mId)
        setRssInfoOnWidget(object);
    }
  }
  
  public void deleteRss(int id) {
    mRssAdapter.deleteRss(id);
    mRssAdapter.notifyDataSetChanged();
    if(id == mCurrentRssObject.mId)
      makeDefaultRssObject();    // Make new RSS object and set data on widget
  }
  
  public void deleteRssAll() {
    mRssAdapter.deleteRssAll();
    mRssAdapter.notifyDataSetChanged();
  }
  
}




Java Source Code List

com.hardcopy.retrowatch.DeviceListActivity.java
com.hardcopy.retrowatch.FiltersAdapter.java
com.hardcopy.retrowatch.FiltersFragment.java
com.hardcopy.retrowatch.IAdapterListener.java
com.hardcopy.retrowatch.IDialogListener.java
com.hardcopy.retrowatch.IFragmentListener.java
com.hardcopy.retrowatch.IWebViewListener.java
com.hardcopy.retrowatch.MessageListAdapter.java
com.hardcopy.retrowatch.MessageListDialog.java
com.hardcopy.retrowatch.MessageListFragment.java
com.hardcopy.retrowatch.RetroWatchActivity.java
com.hardcopy.retrowatch.RetroWatchFragmentAdapter.java
com.hardcopy.retrowatch.RetroWebViewActivity.java
com.hardcopy.retrowatch.RetroWebView.java
com.hardcopy.retrowatch.RssAdapter.java
com.hardcopy.retrowatch.RssFragment.java
com.hardcopy.retrowatch.WatchControlFragment.java
com.hardcopy.retrowatch.connectivity.BluetoothManager.java
com.hardcopy.retrowatch.connectivity.ConnectionInfo.java
com.hardcopy.retrowatch.connectivity.HttpAsyncTask.java
com.hardcopy.retrowatch.connectivity.HttpFileAsyncTask.java
com.hardcopy.retrowatch.connectivity.HttpInterface.java
com.hardcopy.retrowatch.connectivity.HttpListener.java
com.hardcopy.retrowatch.connectivity.HttpRequester.java
com.hardcopy.retrowatch.connectivity.TransactionBuilder.java
com.hardcopy.retrowatch.connectivity.TransactionReceiver.java
com.hardcopy.retrowatch.contents.ContentManager.java
com.hardcopy.retrowatch.contents.FeedManager.java
com.hardcopy.retrowatch.contents.FeedParser.java
com.hardcopy.retrowatch.contents.GmailContract.java
com.hardcopy.retrowatch.contents.IContentManagerListener.java
com.hardcopy.retrowatch.contents.IFeedListener.java
com.hardcopy.retrowatch.contents.objects.CPObject.java
com.hardcopy.retrowatch.contents.objects.ContentObject.java
com.hardcopy.retrowatch.contents.objects.EmergencyObject.java
com.hardcopy.retrowatch.contents.objects.FeedObject.java
com.hardcopy.retrowatch.contents.objects.FilterObject.java
com.hardcopy.retrowatch.contents.objects.MessagingObject.java
com.hardcopy.retrowatch.contents.objects.NotificationObject.java
com.hardcopy.retrowatch.database.DBHelper.java
com.hardcopy.retrowatch.service.NotificationReceiverService.java
com.hardcopy.retrowatch.service.RetroWatchService.java
com.hardcopy.retrowatch.service.ServiceMonitoring.java
com.hardcopy.retrowatch.utils.Constants.java
com.hardcopy.retrowatch.utils.Logs.java
com.hardcopy.retrowatch.utils.RecycleUtils.java
com.hardcopy.retrowatch.utils.Settings.java
com.hardcopy.retrowatch.utils.Utils.java
com.hardcopy.retrowatchle.DeviceListActivity.java
com.hardcopy.retrowatchle.FiltersAdapter.java
com.hardcopy.retrowatchle.FiltersFragment.java
com.hardcopy.retrowatchle.IAdapterListener.java
com.hardcopy.retrowatchle.IDialogListener.java
com.hardcopy.retrowatchle.IFragmentListener.java
com.hardcopy.retrowatchle.IWebViewListener.java
com.hardcopy.retrowatchle.MessageListAdapter.java
com.hardcopy.retrowatchle.MessageListDialog.java
com.hardcopy.retrowatchle.MessageListFragment.java
com.hardcopy.retrowatchle.RetroWatchActivity.java
com.hardcopy.retrowatchle.RetroWatchFragmentAdapter.java
com.hardcopy.retrowatchle.RetroWebViewActivity.java
com.hardcopy.retrowatchle.RetroWebView.java
com.hardcopy.retrowatchle.RssAdapter.java
com.hardcopy.retrowatchle.RssFragment.java
com.hardcopy.retrowatchle.WatchControlFragment.java
com.hardcopy.retrowatchle.connectivity.BluetoothManager.java
com.hardcopy.retrowatchle.connectivity.ConnectionInfo.java
com.hardcopy.retrowatchle.connectivity.HttpAsyncTask.java
com.hardcopy.retrowatchle.connectivity.HttpFileAsyncTask.java
com.hardcopy.retrowatchle.connectivity.HttpInterface.java
com.hardcopy.retrowatchle.connectivity.HttpListener.java
com.hardcopy.retrowatchle.connectivity.HttpRequester.java
com.hardcopy.retrowatchle.connectivity.TransactionBuilder.java
com.hardcopy.retrowatchle.connectivity.TransactionReceiver.java
com.hardcopy.retrowatchle.contents.ContentManager.java
com.hardcopy.retrowatchle.contents.FeedManager.java
com.hardcopy.retrowatchle.contents.FeedParser.java
com.hardcopy.retrowatchle.contents.GmailContract.java
com.hardcopy.retrowatchle.contents.IContentManagerListener.java
com.hardcopy.retrowatchle.contents.IFeedListener.java
com.hardcopy.retrowatchle.contents.objects.CPObject.java
com.hardcopy.retrowatchle.contents.objects.ContentObject.java
com.hardcopy.retrowatchle.contents.objects.EmergencyObject.java
com.hardcopy.retrowatchle.contents.objects.FeedObject.java
com.hardcopy.retrowatchle.contents.objects.FilterObject.java
com.hardcopy.retrowatchle.contents.objects.MessagingObject.java
com.hardcopy.retrowatchle.contents.objects.NotificationObject.java
com.hardcopy.retrowatchle.database.DBHelper.java
com.hardcopy.retrowatchle.service.RetroWatchService.java
com.hardcopy.retrowatchle.service.ServiceMonitoring.java
com.hardcopy.retrowatchle.utils.Constants.java
com.hardcopy.retrowatchle.utils.Logs.java
com.hardcopy.retrowatchle.utils.RecycleUtils.java
com.hardcopy.retrowatchle.utils.Settings.java
com.hardcopy.retrowatchle.utils.Utils.java