content: package com.akoscz.youtube;
  
  import android.app.AlertDialog;
  import android.content.Context;
  import android.content.DialogInterface;
  import android.net.ConnectivityManager;
  import android.net.NetworkInfo;
  import android.os.Bundle;
  import androidx.appcompat.app.AppCompatActivity;
  import android.view.Menu;
  import android.view.MenuItem;
  import android.widget.Toast;
  
  import com.google.api.client.extensions.android.http.AndroidHttp;
  import com.google.api.client.http.HttpTransport;
  import com.google.api.client.json.gson.GsonFactory;
  import com.google.api.services.youtube.YouTube;
  
  /**
   * 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
   * <p/>
   * http://www.apache.org/licenses/LICENSE-2.0
   * <p/>
   * 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.
   */
  public class YouTubeActivity extends AppCompatActivity {
      private static final String[] YOUTUBE_PLAYLISTS = {
              "PLWz5rJ2EKKc_Tt7q77qwyKRgytF1RzRx8",
              "PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE",
              "PLWz5rJ2EKKc_XOgcRukSoKKjewFJZrKV0",
              "PLWz5rJ2EKKc-lJo_RGGXL2Psr8vVCTWjM",
              "PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
              "PLWz5rJ2EKKc-riD21lnOjVYBqSkNII3_k"
      };
      private YouTube mYoutubeDataApi;
      private final GsonFactory mJsonFactory = new GsonFactory();
      private final HttpTransport mTransport = AndroidHttp.newCompatibleTransport();
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.youtube_activity);
  
          
          if(!isConnected()){
              Toast.makeText(YouTubeActivity.this,"No Internet Connection Detected", Toast.LENGTH_LONG).show();
          }
          
          if (ApiKey.YOUTUBE_API_KEY.startsWith("YOUR_API_KEY")) {
              AlertDialog.Builder builder = new AlertDialog.Builder(this)
                  .setMessage("Edit ApiKey.java and replace \"YOUR_API_KEY\" with your Applications Browser API Key")
                          .setTitle("Missing API Key")
                          .setNeutralButton("Ok, I got it!", new DialogInterface.OnClickListener() {
                              @Override
                              public void onClick(DialogInterface dialogInterface, int i) {
                                  finish();
                              }
                          });
  
              AlertDialog dialog = builder.create();
              dialog.show();
  
          } else if (savedInstanceState == null) {
              mYoutubeDataApi = new YouTube.Builder(mTransport, mJsonFactory, null)
                      .setApplicationName(getResources().getString(R.string.app_name))
                      .build();
  
              getSupportFragmentManager().beginTransaction()
                      .add(R.id.container, YouTubeRecyclerViewFragment.newInstance(mYoutubeDataApi, YOUTUBE_PLAYLISTS))
                      .commit();
          }
      }
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
  
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.you_tube, menu);
          return true;
      }
      
      public boolean isConnected() {
          ConnectivityManager cm =
              (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
          NetworkInfo netInfo = cm.getActiveNetworkInfo();
          return netInfo != null && netInfo.isConnectedOrConnecting();
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          // Handle action bar item clicks here. The action bar will
          // automatically handle clicks on the Home/Up button, so long
          // as you specify a parent activity in AndroidManifest.xml.
          int id = item.getItemId();
          if (id == R.id.action_recyclerview) {
              getSupportFragmentManager().beginTransaction()
                      .replace(R.id.container, YouTubeRecyclerViewFragment.newInstance(mYoutubeDataApi, YOUTUBE_PLAYLISTS))
                      .commit();
              return true;
          }
          return super.onOptionsItemSelected(item);
      }
  }
  