Android Open Source - Music-Share-Android Feedback Dialog Fragment






From Project

Back to project page Music-Share-Android.

License

The source code is released under:

GNU General Public License

If you think the Android project Music-Share-Android 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

package com.paperairplane.music.share.dialogs;
//w  ww. ja  v a2  s.c  om
import com.paperairplane.music.share.Consts;
import com.paperairplane.music.share.FeedbackMessage;
import com.paperairplane.music.share.Main;
import com.paperairplane.music.share.R;
import com.paperairplane.music.share.utils.HttpQuestHandler;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.os.Message;
import android.support.v4.app.FragmentActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageView;

public class FeedbackDialogFragment extends AbsDialogFragment {
  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    View feedback = LayoutInflater.from(getActivity()).inflate(
        R.layout.feedback, null);
    final EditText etContent = (EditText) feedback
        .findViewById(R.id.et_feedback);
    final EditText etName = (EditText) feedback.findViewById(R.id.et_name);
    final EditText etEmail = (EditText) feedback
        .findViewById(R.id.et_email);
    TextWatcher twEmail = new TextWatcher() {
      @Override
      public void onTextChanged(CharSequence s, int start, int before,
          int count) {
      }

      @Override
      public void beforeTextChanged(CharSequence s, int start, int count,
          int after) {
      }

      @Override
      public void afterTextChanged(Editable s) {
        String address = s.toString();
        if (!address
            .matches("(?:\\w+)@(?:\\w+)(?:(\\.[a-zA-z]{2,4})+)$")) {
          etEmail.setTextColor(Color.RED);
        } else {
          int color = (Build.VERSION.SDK_INT > 10) ? android.R.color.primary_text_dark
              : android.R.color.primary_text_light;
          etEmail.setTextColor(getResources().getColor(color));
        }
      }
    };
    etEmail.addTextChangedListener(twEmail);
    final ImageView[] ivClearButtons = new ImageView[3];

    ivClearButtons[0] = (ImageView) feedback
        .findViewById(R.id.btn_clear_content);
    ivClearButtons[1] = (ImageView) feedback
        .findViewById(R.id.btn_clear_name);
    ivClearButtons[2] = (ImageView) feedback
        .findViewById(R.id.btn_clear_email);

    OnClickListener listenerClear = new OnClickListener() {
      @Override
      public void onClick(View v) {
        int id = v.getId();
        switch (id) {
        case R.id.btn_clear_content:
          etContent.setText("");
          break;
        case R.id.btn_clear_name:
          etName.setText("");
          break;
        case R.id.btn_clear_email:
          etEmail.setText("");
          break;
        }

      }
    };
    for (ImageView iv : ivClearButtons) {
      iv.setOnClickListener(listenerClear);
    }

    SharedPreferences pref = getActivity().getApplicationContext()
        .getSharedPreferences(Consts.Preferences.FEEDBACK,
            FragmentActivity.MODE_PRIVATE);
    String content = pref.getString("content", "");
    etContent.setText(content);
    String name = pref.getString("name", "");
    etName.setText(name);
    String email = pref.getString("email", "");
    etEmail.setText(email);
    pref.edit().clear().commit();
    final AlertDialog.Builder builder = new AlertDialog.Builder(
        getActivity());
    DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int whichButton) {

        String strContent = etContent.getText().toString().trim();
        String strName = etName.getText().toString().trim();
        String strEmail = etEmail.getText().toString().trim();
        if (strContent.equals("") || strEmail.equals("")) {
          new EmptyDialogFragment().show(getFragmentManager(),
              "emptyDialog");
        } else {
          String[] contents = new String[3];
          contents[0] = strContent;
          contents[1] = strName;
          contents[2] = strEmail;
          FeedbackMessage feedback = new FeedbackMessage(contents,
              Main.sVersionCode, getActivity());
          switch (whichButton) {
          case DialogInterface.BUTTON_POSITIVE:
            feedback.setMeans(Consts.ShareMeans.OTHERS);
            break;
          case DialogInterface.BUTTON_NEGATIVE:
            feedback.setMeans(Consts.ShareMeans.WEIBO);
            break;
          }

          Message m = HttpQuestHandler.getInstance().obtainMessage(
              Consts.NetAccessIntent.SEND_FEEDBACK);
          m.obj = feedback;
          m.sendToTarget();
        }
      }
    };

    builder.setView(feedback)
        .setPositiveButton(R.string.send_feedback, listener)
        .setTitle(R.string.thank_for_feedback)
        .setIcon(android.R.drawable.ic_dialog_info);
    if (getArguments() != null && getArguments().getBoolean("tokenValid")) {
      builder.setNegativeButton(R.string.feedback_weibo, listener);
    }
    return builder.create();
  }

}




Java Source Code List

android.net.http.SslError.java
com.paperairplane.music.share.AtSuggestionActivity.java
com.paperairplane.music.share.Consts.java
com.paperairplane.music.share.FeedbackMessage.java
com.paperairplane.music.share.Main.java
com.paperairplane.music.share.MusicData.java
com.paperairplane.music.share.MusicListAdapter.java
com.paperairplane.music.share.QueryAndShareMusicInfo.java
com.paperairplane.music.share.Receiver.java
com.paperairplane.music.share.SnsHelper.java
com.paperairplane.music.share.cache.ImageLoader.java
com.paperairplane.music.share.cache.MemoryCache.java
com.paperairplane.music.share.dialogs.AboutDialogFragment.java
com.paperairplane.music.share.dialogs.AbsDialogFragment.java
com.paperairplane.music.share.dialogs.AuthManagerDialogFragment.java
com.paperairplane.music.share.dialogs.BackgroundChooserDialogFragment.java
com.paperairplane.music.share.dialogs.ChangeColorDialogFragment.java
com.paperairplane.music.share.dialogs.EmptyDialogFragment.java
com.paperairplane.music.share.dialogs.FeedbackDialogFragment.java
com.paperairplane.music.share.dialogs.SearchDialogFragment.java
com.paperairplane.music.share.dialogs.SendWeiboDialogFragment.java
com.paperairplane.music.share.dialogs.ThankDialogFragment.java
com.paperairplane.music.share.utils.CrashHandler.java
com.paperairplane.music.share.utils.HanziToPinyin.java
com.paperairplane.music.share.utils.HttpQuestHandler.java
com.paperairplane.music.share.utils.IntentResolver.java
com.paperairplane.music.share.utils.MyLogger.java
com.paperairplane.music.share.utils.ShakeDetector.java
com.paperairplane.music.share.utils.Utilities.java
com.paperairplane.music.share.utils.lastfm.Album.java
com.paperairplane.music.share.utils.lastfm.Artist.java
com.paperairplane.music.share.utils.lastfm.Caller.java
com.paperairplane.music.share.utils.lastfm.DomElement.java
com.paperairplane.music.share.utils.lastfm.ImageHolder.java
com.paperairplane.music.share.utils.lastfm.ImageSize.java
com.paperairplane.music.share.utils.lastfm.Image.java
com.paperairplane.music.share.utils.lastfm.ItemFactoryBuilder.java
com.paperairplane.music.share.utils.lastfm.ItemFactory.java
com.paperairplane.music.share.utils.lastfm.MapUtilities.java
com.paperairplane.music.share.utils.lastfm.MusicEntry.java
com.paperairplane.music.share.utils.lastfm.PaginatedResult.java
com.paperairplane.music.share.utils.lastfm.ResponseBuilder.java
com.paperairplane.music.share.utils.lastfm.Result.java
com.paperairplane.music.share.utils.lastfm.StringUtilities.java
com.paperairplane.music.share.utils.lastfm.Track.java
com.weibo.sdk.android.Oauth2AccessToken.java
com.weibo.sdk.android.WeiboAuthListener.java
com.weibo.sdk.android.WeiboDialogError.java
com.weibo.sdk.android.WeiboDialog.java
com.weibo.sdk.android.WeiboException.java
com.weibo.sdk.android.WeiboParameters.java
com.weibo.sdk.android.Weibo.java
com.weibo.sdk.android.api.AccountAPI.java
com.weibo.sdk.android.api.ActivityInvokeAPI.java
com.weibo.sdk.android.api.CommentsAPI.java
com.weibo.sdk.android.api.CommonAPI.java
com.weibo.sdk.android.api.FavoritesAPI.java
com.weibo.sdk.android.api.FriendshipsAPI.java
com.weibo.sdk.android.api.PlaceAPI.java
com.weibo.sdk.android.api.RegisterAPI.java
com.weibo.sdk.android.api.SearchAPI.java
com.weibo.sdk.android.api.ShortUrlAPI.java
com.weibo.sdk.android.api.StatusesAPI.java
com.weibo.sdk.android.api.SuggestionsAPI.java
com.weibo.sdk.android.api.TagsAPI.java
com.weibo.sdk.android.api.TrendsAPI.java
com.weibo.sdk.android.api.UsersAPI.java
com.weibo.sdk.android.api.WeiboAPI.java
com.weibo.sdk.android.net.AsyncWeiboRunner.java
com.weibo.sdk.android.net.HttpManager.java
com.weibo.sdk.android.net.NetStateManager.java
com.weibo.sdk.android.net.RequestListener.java
com.weibo.sdk.android.sso.SsoHandler.java
com.weibo.sdk.android.util.BitmapHelper.java
com.weibo.sdk.android.util.Utility.java